import { Store } from '../types'; export interface AsyncStorageAdapter { getItem(key: string): Promise | string | null; setItem(key: string, value: string): Promise | void; removeItem(key: string): Promise | void; } export type PersistStorageOption = 'local' | 'session' | Storage | AsyncStorageAdapter; export interface PersistMigration { (oldState: any, oldVersion: number): T; } export interface PersistOptions { storage?: PersistStorageOption; key?: string; include?: Array; exclude?: Array; version?: number; migrate?: PersistMigration; debounceMs?: number; serialize?: (state: any) => string; deserialize?: (raw: string) => any; onError?: (error: unknown, phase: 'load' | 'save' | 'migrate') => void; } export declare function persistMiddleware(opts?: PersistOptions): (store: Store) => Store;