[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:1100](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L1100)

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:1111](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L1111)

Derives the identity used to compare claims.

---

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

### idleDisposeAfter?

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

Defined in: [packages/common/src/Resource.ts:283](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L283)

Keeps the resource alive briefly after the last lease is released.

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: DistributiveOmit<T>, resourceKey: K) => void;
```

Defined in: [packages/common/src/Resource.ts:1121](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L1121)

Called when a claim-resource pair transitions from zero retains to one.

This is a pair-retain transition, not a resource-generation transition: a
resource can already be retained by other claims or be idling after an
earlier release. Arguments use the first stored representatives for their
logical claim and key.

### onLastClaimRemoved?

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

Defined in: [packages/common/src/Resource.ts:1137](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L1137)

Called when a claim-resource pair transitions from one retain to zero.

Runs before the ClaimLease's inner resource lease is released. Other claims
can still retain the same resource. Arguments use the first stored
representatives for their logical claim and key. During normal release, the
current pair and earlier keys from the same ClaimLease are already absent
from relation reads; later keys remain. During compensation for a failed
first-claim callback, the failed claim remains fully visible.

### resourceLookup?

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

Defined in: [packages/common/src/Resource.ts:1108](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L1108)

Derives the identity used to compare resource keys.