import type { SerializableTevmState } from '@tevm/state' import type { Storage } from './Storage.js' // Adapted from tanstack query /** * Options for creating a sync storage persister. */ export type CreateSyncStoragePersisterOptions = { /** The storage client used for setting and retrieving items from cache. * For SSR pass in `undefined`. Note that window.localStorage can be * `null` in Android WebViews depending on how they are configured. */ storage: Storage /** The key to use when storing the cache */ key?: string /** To avoid spamming, pass a time in ms to throttle saving the cache to disk */ throttleTime?: number /** * How to serialize the data to storage. * @default `JSON.stringify` */ serialize?: (client: SerializableTevmState) => string /** * How to deserialize the data from storage. * @default `JSON.parse` */ deserialize?: (cachedString: string) => SerializableTevmState // retry?: PersistRetryer }