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

JavaScript-native structured concurrency.

## Core Types

| Name                                                                      | Description                                                                                                                                                                     |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AbortError](https://evolu.dev/docs/api-reference/common/Task/interfaces/AbortError)   | Error returned when a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) is aborted via [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). |
| [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber)             | `Fiber` is a handle to a running [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that can be awaited, aborted, or disposed.                                       |
| [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run)                 | Runs a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) with [structured concurrency](https://en.wikipedia.org/wiki/Structured_concurrency) semantics.             |
| [RunSnapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunSnapshot) | A recursive snapshot of a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) tree.                                                                                       |
| [NextTask](https://evolu.dev/docs/api-reference/common/Task/type-aliases/NextTask)     | A [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that can complete with a value, signal done, or fail.                                                           |
| [RunState](https://evolu.dev/docs/api-reference/common/Task/type-aliases/RunState)     | The lifecycle state of a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run).                                                                                             |
| [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)             | JavaScript-native structured concurrency.                                                                                                                                       |
| [AbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AbortError)    | Error returned when a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) is aborted via [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). |

## Creating Run

| Name                                                                               | Description                                                                                                                                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CreateRun](https://evolu.dev/docs/api-reference/common/Task/interfaces/CreateRun)              | Factory type for creating root [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) instances.                                                                                                                                                                                                             |
| [RunStoppedError](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunStoppedError)  | Abort reason indicating a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) can no longer start new Tasks.                                                                                                                                                                                              |
| [createRun](https://evolu.dev/docs/api-reference/common/Task/variables/createRun)               | Creates root [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run).                                                                                                                                                                                                                                         |
| [runStoppedError](https://evolu.dev/docs/api-reference/common/Task/variables/runStoppedError)   | Shared [RunStoppedError](https://evolu.dev/docs/api-reference/common/Task/variables/RunStoppedError-1) instance used as the default [AbortError.reason](https://evolu.dev/docs/api-reference/common/Task/interfaces/AbortError#reason) when a Task is started on a non-running [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run). |
| [RunStoppedError](https://evolu.dev/docs/api-reference/common/Task/variables/RunStoppedError-1) | Abort reason indicating a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) can no longer start new Tasks.                                                                                                                                                                                              |

## Abort masking

| Name                                                                             | Description                                                                                                                                        |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AbortMask](https://evolu.dev/docs/api-reference/common/Task/type-aliases/AbortMask)          | Abort mask depth for a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) or [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber). |
| [AbortMask](https://evolu.dev/docs/api-reference/common/Task/variables/AbortMask)             | Abort mask depth for a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) or [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber). |
| [unabortable](https://evolu.dev/docs/api-reference/common/Task/variables/unabortable)         | Makes a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) unabortable.                                                                 |
| [unabortableMask](https://evolu.dev/docs/api-reference/common/Task/functions/unabortableMask) | Like [unabortable](https://evolu.dev/docs/api-reference/common/Task/variables/unabortable), but provides `restore` to restore abortability for specific tasks.  |

## Composition

| Name                                                                                         | Description                                                                                                                                                                                                                                                                         |
| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AllAbortError](https://evolu.dev/docs/api-reference/common/Task/interfaces/AllAbortError)                | Abort reason used by [all](https://evolu.dev/docs/api-reference/common/Task/functions/all) when aborting remaining tasks.                                                                                                                                                                        |
| [AllSettledAbortError](https://evolu.dev/docs/api-reference/common/Task/interfaces/AllSettledAbortError)  | Abort reason used by [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled) when aborted externally.                                                                                                                                                                |
| [AnyAbortError](https://evolu.dev/docs/api-reference/common/Task/interfaces/AnyAbortError)                | Abort reason used by [any](https://evolu.dev/docs/api-reference/common/Task/functions/any) when aborting remaining tasks.                                                                                                                                                                        |
| [CollectOptions](https://evolu.dev/docs/api-reference/common/Task/interfaces/CollectOptions)              | Options for [all](https://evolu.dev/docs/api-reference/common/Task/functions/all), [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled), [map](https://evolu.dev/docs/api-reference/common/Task/functions/map), and [mapSettled](https://evolu.dev/docs/api-reference/common/Task/functions/mapSettled). |
| [FetchError](https://evolu.dev/docs/api-reference/common/Task/interfaces/FetchError)                      | Error returned when a [fetch](https://evolu.dev/docs/api-reference/common/Task/functions/fetch) [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) fails.                                                                                                                             |
| [MapAbortError](https://evolu.dev/docs/api-reference/common/Task/interfaces/MapAbortError)                | Abort reason used by [map](https://evolu.dev/docs/api-reference/common/Task/functions/map) when aborting remaining tasks.                                                                                                                                                                        |
| [RaceLostError](https://evolu.dev/docs/api-reference/common/Task/interfaces/RaceLostError)                | Abort reason for tasks that lose a [race](https://evolu.dev/docs/api-reference/common/Task/functions/race).                                                                                                                                                                                      |
| [RepeatAttempt](https://evolu.dev/docs/api-reference/common/Task/interfaces/RepeatAttempt)                | Info passed to [repeat](https://evolu.dev/docs/api-reference/common/Task/functions/repeat) [RepeatOptions.onRepeat](https://evolu.dev/docs/api-reference/common/Task/interfaces/RepeatOptions#onrepeat) callback.                                                                                             |
| [RepeatOptions](https://evolu.dev/docs/api-reference/common/Task/interfaces/RepeatOptions)                | Options for [repeat](https://evolu.dev/docs/api-reference/common/Task/functions/repeat).                                                                                                                                                                                                         |
| [RetryAttempt](https://evolu.dev/docs/api-reference/common/Task/interfaces/RetryAttempt)                  | Info passed to [retry](https://evolu.dev/docs/api-reference/common/Task/functions/retry) [RetryOptions.onRetry](https://evolu.dev/docs/api-reference/common/Task/interfaces/RetryOptions#onretry) callback.                                                                                                   |
| [RetryError](https://evolu.dev/docs/api-reference/common/Task/interfaces/RetryError)                      | Error returned when all retry attempts are exhausted.                                                                                                                                                                                                                               |
| [RetryOptions](https://evolu.dev/docs/api-reference/common/Task/interfaces/RetryOptions)                  | Options for [retry](https://evolu.dev/docs/api-reference/common/Task/functions/retry).                                                                                                                                                                                                           |
| [TimeoutError](https://evolu.dev/docs/api-reference/common/Task/interfaces/TimeoutError)                  | Typed error returned by [timeout](https://evolu.dev/docs/api-reference/common/Task/functions/timeout) when a task exceeds its time limit.                                                                                                                                                        |
| [allAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/allAbortError)                 | [AllAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AllAbortError-1) used as abort reason in [all](https://evolu.dev/docs/api-reference/common/Task/functions/all).                                                                                                                    |
| [AllAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AllAbortError-1)               | Abort reason used by [all](https://evolu.dev/docs/api-reference/common/Task/functions/all) when aborting remaining tasks.                                                                                                                                                                        |
| [allSettledAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/allSettledAbortError)   | [AllSettledAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AllSettledAbortError-1) used as abort reason in [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled).                                                                                        |
| [AllSettledAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AllSettledAbortError-1) | Abort reason used by [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled) when aborted externally.                                                                                                                                                                |
| [anyAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/anyAbortError)                 | [AnyAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AnyAbortError-1) used as abort reason in [any](https://evolu.dev/docs/api-reference/common/Task/functions/any).                                                                                                                    |
| [AnyAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/AnyAbortError-1)               | Abort reason used by [any](https://evolu.dev/docs/api-reference/common/Task/functions/any) when aborting remaining tasks.                                                                                                                                                                        |
| [FetchError](https://evolu.dev/docs/api-reference/common/Task/variables/FetchError)                       | Error returned when a [fetch](https://evolu.dev/docs/api-reference/common/Task/functions/fetch) [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) fails.                                                                                                                             |
| [mapAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/mapAbortError)                 | [MapAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/MapAbortError-1) used as abort reason in [map](https://evolu.dev/docs/api-reference/common/Task/functions/map).                                                                                                                    |
| [MapAbortError](https://evolu.dev/docs/api-reference/common/Task/variables/MapAbortError-1)               | Abort reason used by [map](https://evolu.dev/docs/api-reference/common/Task/functions/map) when aborting remaining tasks.                                                                                                                                                                        |
| [raceLostError](https://evolu.dev/docs/api-reference/common/Task/variables/raceLostError)                 | [RaceLostError](https://evolu.dev/docs/api-reference/common/Task/variables/RaceLostError-1) used as abort reason in [race](https://evolu.dev/docs/api-reference/common/Task/functions/race).                                                                                                                  |
| [RaceLostError](https://evolu.dev/docs/api-reference/common/Task/variables/RaceLostError-1)               | Abort reason for tasks that lose a [race](https://evolu.dev/docs/api-reference/common/Task/functions/race).                                                                                                                                                                                      |
| [timeoutError](https://evolu.dev/docs/api-reference/common/Task/variables/timeoutError)                   | [TimeoutError](https://evolu.dev/docs/api-reference/common/Task/variables/TimeoutError-1) used as abort reason in [timeout](https://evolu.dev/docs/api-reference/common/Task/functions/timeout).                                                                                                              |
| [TimeoutError](https://evolu.dev/docs/api-reference/common/Task/variables/TimeoutError-1)                 | Typed error returned by [timeout](https://evolu.dev/docs/api-reference/common/Task/functions/timeout) when a task exceeds its time limit.                                                                                                                                                        |
| [yieldNow](https://evolu.dev/docs/api-reference/common/Task/variables/yieldNow)                           | Yields execution to allow other work to proceed.                                                                                                                                                                                                                                    |
| [all](https://evolu.dev/docs/api-reference/common/Task/functions/all)                                     | Fails fast on first error across multiple [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s.                                                                                                                                                                           |
| [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled)                       | Completes all [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s regardless of individual failures.                                                                                                                                                                     |
| [any](https://evolu.dev/docs/api-reference/common/Task/functions/any)                                     | Returns the first [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that succeeds.                                                                                                                                                                                      |
| [callback](https://evolu.dev/docs/api-reference/common/Task/functions/callback)                           | Creates a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) from a callback-based API.                                                                                                                                                                                  |
| [concurrently](https://evolu.dev/docs/api-reference/common/Task/functions/concurrently)                   | Runs tasks concurrently instead of sequentially.                                                                                                                                                                                                                                    |
| [fetch](https://evolu.dev/docs/api-reference/common/Task/functions/fetch)                                 | Creates a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that wraps the native [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).                                                                                                              |
| [map](https://evolu.dev/docs/api-reference/common/Task/functions/map)                                     | Maps values to [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s, failing fast on first error.                                                                                                                                                                         |
| [mapSettled](https://evolu.dev/docs/api-reference/common/Task/functions/mapSettled)                       | Maps values to [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s, completing all regardless of failures.                                                                                                                                                               |
| [race](https://evolu.dev/docs/api-reference/common/Task/functions/race)                                   | Returns a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that completes first.                                                                                                                                                                                       |
| [repeat](https://evolu.dev/docs/api-reference/common/Task/functions/repeat)                               | Repeats a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) according to a [Schedule](https://evolu.dev/docs/api-reference/common/Schedule/type-aliases/Schedule).                                                                                                                   |
| [retry](https://evolu.dev/docs/api-reference/common/Task/functions/retry)                                 | Wraps a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) with retry logic.                                                                                                                                                                                             |
| [sleep](https://evolu.dev/docs/api-reference/common/Task/functions/sleep)                                 | Pauses execution for a specified duration.                                                                                                                                                                                                                                          |
| [timeout](https://evolu.dev/docs/api-reference/common/Task/functions/timeout)                             | Wraps a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) with a time limit.                                                                                                                                                                                            |

## Concurrency primitives

| Name                                                                                               | Description                                                                                                                                                                                                |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Deferred](https://evolu.dev/docs/api-reference/common/Task/interfaces/Deferred)                                | A value that can be resolved later.                                                                                                                                                                        |
| [DeferredDisposedError](https://evolu.dev/docs/api-reference/common/Task/interfaces/DeferredDisposedError)      | Abort reason used when a [Deferred](https://evolu.dev/docs/api-reference/common/Task/interfaces/Deferred) is disposed.                                                                                                  |
| [Gate](https://evolu.dev/docs/api-reference/common/Task/interfaces/Gate)                                        | A blocking [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) — like a gate.                                                                                                                    |
| [LeaderLock](https://evolu.dev/docs/api-reference/common/Task/interfaces/LeaderLock)                            | Cross-platform leader lock abstraction.                                                                                                                                                                    |
| [LeaderLockDep](https://evolu.dev/docs/api-reference/common/Task/interfaces/LeaderLockDep)                      | -                                                                                                                                                                                                          |
| [Mutex](https://evolu.dev/docs/api-reference/common/Task/interfaces/Mutex)                                      | A mutex (mutual exclusion) that ensures only one [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) runs at a time.                                                                             |
| [MutexByKey](https://evolu.dev/docs/api-reference/common/Task/interfaces/MutexByKey)                            | A keyed [Mutex](https://evolu.dev/docs/api-reference/common/Task/interfaces/Mutex) registry.                                                                                                                            |
| [MutexRef](https://evolu.dev/docs/api-reference/common/Task/interfaces/MutexRef)                                | [Ref](https://evolu.dev/docs/api-reference/common/Ref/interfaces/Ref) protected by a [Mutex](https://evolu.dev/docs/api-reference/common/Task/interfaces/Mutex).                                                                     |
| [Semaphore](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore)                              | A semaphore that limits the number of concurrent [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s.                                                                                           |
| [SemaphoreByKey](https://evolu.dev/docs/api-reference/common/Task/interfaces/SemaphoreByKey)                    | A keyed [Semaphore](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore) registry.                                                                                                                    |
| [SemaphoreDisposedError](https://evolu.dev/docs/api-reference/common/Task/interfaces/SemaphoreDisposedError)    | Abort reason used when a [Semaphore](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore) is disposed.                                                                                                |
| [Concurrency](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Concurrency)                        | Maximum number of concurrent Tasks.                                                                                                                                                                        |
| [deferredDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/deferredDisposedError)       | [DeferredDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/DeferredDisposedError-1) used as abort reason in [createDeferred](https://evolu.dev/docs/api-reference/common/Task/functions/createDeferred).     |
| [DeferredDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/DeferredDisposedError-1)     | Abort reason used when a [Deferred](https://evolu.dev/docs/api-reference/common/Task/interfaces/Deferred) is disposed.                                                                                                  |
| [semaphoreDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/semaphoreDisposedError)     | [SemaphoreDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1) used as abort reason in [createSemaphore](https://evolu.dev/docs/api-reference/common/Task/functions/createSemaphore). |
| [SemaphoreDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1)   | Abort reason used when a [Semaphore](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore) is disposed.                                                                                                |
| [createDeferred](https://evolu.dev/docs/api-reference/common/Task/functions/createDeferred)                     | Creates a [Deferred](https://evolu.dev/docs/api-reference/common/Task/interfaces/Deferred).                                                                                                                             |
| [createGate](https://evolu.dev/docs/api-reference/common/Task/functions/createGate)                             | Creates a [Gate](https://evolu.dev/docs/api-reference/common/Task/interfaces/Gate) that starts closed.                                                                                                                  |
| [createInMemoryLeaderLock](https://evolu.dev/docs/api-reference/common/Task/functions/createInMemoryLeaderLock) | Creates an in-process [LeaderLock](https://evolu.dev/docs/api-reference/common/Task/interfaces/LeaderLock).                                                                                                             |
| [createMutex](https://evolu.dev/docs/api-reference/common/Task/functions/createMutex)                           | Creates a [Mutex](https://evolu.dev/docs/api-reference/common/Task/interfaces/Mutex).                                                                                                                                   |
| [createMutexByKey](https://evolu.dev/docs/api-reference/common/Task/functions/createMutexByKey)                 | Creates a [MutexByKey](https://evolu.dev/docs/api-reference/common/Task/interfaces/MutexByKey).                                                                                                                         |
| [createMutexRef](https://evolu.dev/docs/api-reference/common/Task/functions/createMutexRef)                     | Creates a [MutexRef](https://evolu.dev/docs/api-reference/common/Task/interfaces/MutexRef) with the given initial immutable value.                                                                                      |
| [createSemaphore](https://evolu.dev/docs/api-reference/common/Task/functions/createSemaphore)                   | Creates a [Semaphore](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore) that limits concurrent [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task)s.                                     |
| [createSemaphoreByKey](https://evolu.dev/docs/api-reference/common/Task/functions/createSemaphoreByKey)         | Creates a [SemaphoreByKey](https://evolu.dev/docs/api-reference/common/Task/interfaces/SemaphoreByKey).                                                                                                                 |

## Monitoring

| Name                                                                                  | Description                                                                                                 |
| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| [RunConfig](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunConfig)                 | Configuration for [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) behavior.                       |
| [RunEvent](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunEvent)                   | Events emitted by a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) for monitoring and debugging. |
| [RunEventData](https://evolu.dev/docs/api-reference/common/Task/type-aliases/RunEventData)         | The event-specific payload of a [RunEvent](https://evolu.dev/docs/api-reference/common/Task/variables/RunEvent).         |
| [RunSnapshotState](https://evolu.dev/docs/api-reference/common/Task/type-aliases/RunSnapshotState) | [RunSnapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunSnapshot) state Type.                       |
| [RunEvent](https://evolu.dev/docs/api-reference/common/Task/variables/RunEvent)                    | Events emitted by a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) for monitoring and debugging. |
| [RunEventData](https://evolu.dev/docs/api-reference/common/Task/variables/RunEventData)            | The event-specific payload of a [RunEvent](https://evolu.dev/docs/api-reference/common/Task/variables/RunEvent).         |
| [RunSnapshotState](https://evolu.dev/docs/api-reference/common/Task/variables/RunSnapshotState)    | [RunSnapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunSnapshot) state Type.                       |

## Type utilities

| Type Alias                                                                        | Description                                                                                                |
| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [AnyTask](https://evolu.dev/docs/api-reference/common/Task/type-aliases/AnyTask)               | Shorthand for a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) with `any` type parameters.  |
| [InferFiberDeps](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferFiberDeps) | Extracts the deps type from a [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber).               |
| [InferFiberErr](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferFiberErr)   | Extracts the error type from a [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber).              |
| [InferFiberOk](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferFiberOk)     | Extracts the value type from a [Fiber](https://evolu.dev/docs/api-reference/common/Task/interfaces/Fiber).              |
| [InferTaskDeps](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferTaskDeps)   | Extracts the deps type from a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task).               |
| [InferTaskDone](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferTaskDone)   | Extracts the done value type from a [NextTask](https://evolu.dev/docs/api-reference/common/Task/type-aliases/NextTask). |
| [InferTaskErr](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferTaskErr)     | Extracts the error type from a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task).              |
| [InferTaskOk](https://evolu.dev/docs/api-reference/common/Task/type-aliases/InferTaskOk)       | Extracts the value type from a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task).              |

## Interfaces

| Interface                                                                                                 | Description                                                                                                   |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [CreateMutexByKeyOptions](https://evolu.dev/docs/api-reference/common/Task/interfaces/CreateMutexByKeyOptions)         | Options for [createMutexByKey](https://evolu.dev/docs/api-reference/common/Task/functions/createMutexByKey).               |
| [CreateSemaphoreByKeyOptions](https://evolu.dev/docs/api-reference/common/Task/interfaces/CreateSemaphoreByKeyOptions) | Options for [createSemaphoreByKey](https://evolu.dev/docs/api-reference/common/Task/functions/createSemaphoreByKey).       |
| [RunConfigDep](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunConfigDep)                               | -                                                                                                             |
| [RunStateDisposing](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunStateDisposing)                     | Base interface for objects with a discriminant `type` property.                                               |
| [RunStateRunning](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunStateRunning)                         | Base interface for objects with a discriminant `type` property.                                               |
| [RunStateSettled](https://evolu.dev/docs/api-reference/common/Task/interfaces/RunStateSettled)                         | Base interface for objects with a discriminant `type` property.                                               |
| [SemaphoreSnapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/SemaphoreSnapshot)                     | Snapshot returned by [Semaphore.snapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/Semaphore#snapshot). |

## Type Aliases

| Type Alias                                                                    | Description                                                                                    |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [AnyAllFailed](https://evolu.dev/docs/api-reference/common/Task/type-aliases/AnyAllFailed) | Tie-breaker for [any](https://evolu.dev/docs/api-reference/common/Task/functions/any) when all tasks fail.  |
| [RunDeps](https://evolu.dev/docs/api-reference/common/Task/type-aliases/RunDeps)           | Default deps provided by [createRun](https://evolu.dev/docs/api-reference/common/Task/variables/createRun). |