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

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.