[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:5651](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5651)

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:5676](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5676)

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:5679](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5679)

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:5656](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5656)

Total configured permits.

---

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

### policy

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

Defined in: [packages/common/src/Task.ts:5653](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5653)

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:5659](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5659)

Currently held permits.

---

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

### waiters

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

Defined in: [packages/common/src/Task.ts:5662](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L5662)

Queued acquisition requests.