# ExternalSnapshotStore

Source: /tuil/docs/reference/packages/ink/api/external-snapshot-store
Locale: en

interface exported by @mwillbanks/tuil-ink.



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

## interface [#interface]

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

```ts
export interface ExternalSnapshotStore<TSnapshot> {
  subscribe(observer: () => void): () => void;
  snapshot(): TSnapshot;
}
```

## Members [#members]

| Member      | Type                                   | Required | Description                                                                      | Related types |
| ----------- | -------------------------------------- | -------- | -------------------------------------------------------------------------------- | ------------- |
| `subscribe` | `(observer: () => void) => () => void` | Yes      | The `subscribe` member uses the `(observer: () => void) => () => void` contract. | —             |
| `snapshot`  | `() => TSnapshot`                      | Yes      | The `snapshot` member uses the `() => TSnapshot` 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]

No package-local related types.

## Source [#source]

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

## Package [#package]

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