# WorkflowPersistence

Source: /tuil/docs/reference/packages/workflow/api/workflow-persistence
Locale: en

interface exported by @mwillbanks/tuil-workflow.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-workflow`.

```ts
export interface WorkflowPersistence<TState> {
  readonly load: (
    id: string,
    signal: AbortSignal,
  ) =>
    | PersistedWorkflow<TState>
    | undefined
    | Promise<PersistedWorkflow<TState> | undefined>;
  readonly save: (
    id: string,
    value: PersistedWorkflow<TState>,
    signal: AbortSignal,
  ) => void | Promise<void>;
  readonly remove?: (id: string, signal: AbortSignal) => void | Promise<void>;
}
```

## Members [#members]

| Member   | Type                                                                                                                             | Required | Description                                                                                                                                                           | Related types                                                                   |
| -------- | -------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `load`   | `(id: string, signal: AbortSignal) => PersistedWorkflow<TState> \| undefined \| Promise<PersistedWorkflow<TState> \| undefined>` | Yes      | The `load` member uses the `(id: string, signal: AbortSignal) => PersistedWorkflow<TState> \| undefined \| Promise<PersistedWorkflow<TState> \| undefined>` contract. | [`PersistedWorkflow`](/tuil/docs/reference/packages/workflow/api/persisted-workflow) |
| `save`   | `(id: string, value: PersistedWorkflow<TState>, signal: AbortSignal) => void \| Promise<void>`                                   | Yes      | The `save` member uses the `(id: string, value: PersistedWorkflow<TState>, signal: AbortSignal) => void \| Promise<void>` contract.                                   | [`PersistedWorkflow`](/tuil/docs/reference/packages/workflow/api/persisted-workflow) |
| `remove` | `((id: string, signal: AbortSignal) => void \| Promise<void>) \| undefined`                                                      | No       | The `remove` member uses the `((id: string, signal: AbortSignal) => void \| Promise<void>) \| undefined` contract.                                                    | —                                                                               |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

* [`PersistedWorkflow`](/tuil/docs/reference/packages/workflow/api/persisted-workflow)

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/workflow/src/index.ts)

## Package [#package]

[@mwillbanks/tuil-workflow](/tuil/docs/reference/packages/workflow)
