{"version":3,"file":"persister.cjs","sources":["../../src/persister.ts"],"sourcesContent":["/**\n * Abstract class that defines the contract for a state persister implementation.\n * A persister is responsible for loading and saving state to a storage medium.\n *\n * @example\n * ```ts\n * class MyPersister extends Persister<MyState> {\n *   constructor() {\n *     super(key)\n *   }\n *\n *   loadState(): MyState | undefined {\n *     // Load state from storage\n *     return state\n *   }\n *\n *   saveState(, state: MyState): void {\n *     // Save state to storage\n *   }\n *\n *   clearState(useDefaultState?: boolean): void {\n *     // Clear state from storage or set the default state if provided and specified to be used\n *   }\n * }\n * ```\n */\nexport abstract class Persister<\n  TState,\n  TSelected extends Partial<TState> = TState,\n> {\n  constructor(public readonly key: string) {}\n\n  abstract loadState: () => TSelected | undefined\n  abstract saveState: (state: TState) => void\n  abstract clearState: (useDefaultState?: boolean) => void\n}\n"],"names":[],"mappings":";;AA0BO,MAAe,UAGpB;AAAA,EACA,YAA4B,KAAa;AAAb,SAAA,MAAA;AAAA,EAAA;AAK9B;;"}