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

Defined in: [packages/common/src/Task.ts:5656](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5656)

Snapshot returned by [Semaphore.snapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore#snapshot).

## Properties

<a id="available"></a>

### available

```ts
readonly available: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative">;
```

Defined in: [packages/common/src/Task.ts:5681](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5681)

Permits available for immediate acquisition.

In `"fifo"` mode, this is `0` while requests are queued because later
acquisitions cannot bypass them.

When the total permit count is resized below currently held permits, this
is `0` until enough permits are released.

---

<a id="isidle"></a>

### isIdle

```ts
readonly isIdle: boolean;
```

Defined in: [packages/common/src/Task.ts:5684](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5684)

Whether no permits are held and no requests are queued.

---

<a id="permits"></a>

### permits

```ts
readonly permits: Int1To100OrPositiveInt;
```

Defined in: [packages/common/src/Task.ts:5661](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5661)

Total configured permits.

---

<a id="policy"></a>

### policy

```ts
readonly policy: SemaphorePolicy;
```

Defined in: [packages/common/src/Task.ts:5658](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5658)

Acquisition scheduling policy.

---

<a id="taken"></a>

### taken

```ts
readonly taken: number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative">;
```

Defined in: [packages/common/src/Task.ts:5664](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5664)

Currently held permits.

---

<a id="waiters"></a>

### waiters

```ts
readonly waiters: readonly {
  permits: Int1To100OrPositiveInt;
}[];
```

Defined in: [packages/common/src/Task.ts:5667](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Task.ts#L5667)

Queued acquisition requests.