[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) › NextTask

```ts
type NextTask<T, E, DoneValue, Deps> = Task<T, E | Done<DoneValue>, Deps>;
```

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

A [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that can return a value, signal done, or return a [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result)
error.

Use for pull-based protocols where [Done\<D\>](https://evolu.dev/docs/api-reference/common/Result/interfaces/Done) signals normal
completion rather than an error.