import { StoreHelper, ReduxStoreConfig } from './StoreHelper'; import { IActionPayload } from '../actions/BaseAction'; /** * We don't need method `removeItem` here */ export interface PersistStorage { getItem(key: string): Promise; setItem(key: string, value: string): Promise; } export interface IPersistRehydrate extends IActionPayload> { } export declare class Persist { protected readonly keyPrefix = "ReduxModel:Persist:"; protected readonly helper: StoreHelper; protected readonly schema: { __persist: { version: number | string; }; }; protected cache?: string | null; protected config: ReduxStoreConfig['persist']; protected ready: boolean; protected allowKeys: string[]; protected model2key: Record; protected key2model: Record; protected persistStates: Record; protected strings: Record; protected subscription: string[]; protected readyEvents: Function[]; protected storage: PersistStorage; protected timer?: number; constructor(storeHelper: StoreHelper); rehydrate(config: ReduxStoreConfig['persist']): void; update(nextState: any, force: boolean): void; isReady(): boolean; subscribe(reducerName: string): any; listen(fn: () => void): Function; listenOnce(fn: () => void): Function; protected parseData(data: string | null): void; protected onParsed(): this; protected resetAndRestore(): this; protected onReady(): this; protected restore(): this; private _restore; }