[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Resource](https://evolu.dev/docs/api-reference/common/Resource) › SharedResourceByKeyWithClaimsOptions

Defined in: [packages/common/src/Resource.ts:590](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L590)

Options for [createSharedResourceByKeyWithClaims](https://evolu.dev/docs/api-reference/common/Resource/functions/createSharedResourceByKeyWithClaims).

## Extends

- `Pick`\<[`SharedResourceOptions`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions), `"idleDisposeAfter"`\>

## Properties

<a id="claimlookup"></a>

### claimLookup?

```ts
readonly optional claimLookup?: Lookup<C, LC>;
```

Defined in: [packages/common/src/Resource.ts:601](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L601)

Derives logical identity for claims. Defaults to [identity](https://evolu.dev/docs/api-reference/common/Function/functions/identity).

---

<a id="idledisposeafter"></a>

### idleDisposeAfter?

```ts
readonly optional idleDisposeAfter?: Duration;
```

Defined in: [packages/common/src/Resource.ts:229](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L229)

Keeps the resource alive briefly after the last release.

This avoids immediate disposal when the resource is expensive to create and
likely to be acquired again soon. A new acquire during this delay cancels
the pending disposal and reuses the current resource.

#### Inherited from

[`SharedResourceOptions`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions).[`idleDisposeAfter`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions#idledisposeafter)

---

<a id="onfirstclaimadded"></a>

### onFirstClaimAdded?

```ts
readonly optional onFirstClaimAdded?: (claim: C, resource: BorrowedResource<T>, resourceKey: K) => void;
```

Defined in: [packages/common/src/Resource.ts:604](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L604)

Called when a key transitions from zero claims to one claim.

### onLastClaimRemoved?

```ts
readonly optional onLastClaimRemoved?: (claim: C, resource: BorrowedResource<T>, resourceKey: K) => void;
```

Defined in: [packages/common/src/Resource.ts:611](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L611)

Called when a key transitions from one claim to zero claims.

### resourceLookup?

```ts
readonly optional resourceLookup?: Lookup<K, LK>;
```

Defined in: [packages/common/src/Resource.ts:598](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L598)

Derives logical identity for resource keys. Defaults to [identity](https://evolu.dev/docs/api-reference/common/Function/functions/identity).