export interface AnyAction extends Action { [extraProps: string]: any; } export interface Action { type: T; } export declare type Reducer = (state: S | undefined, action: A) => S; export interface Storage { getItem(key: string, ...args: Array): any; setItem(key: string, value: any, ...args: Array): any; removeItem(key: string, ...args: Array): any; } export interface PersistState { version: number; rehydrated: boolean; } export declare type PersistedState = { _persist: PersistState; } | undefined; export declare type PersistMigrate = (state: PersistedState, currentVersion: number) => Promise; export declare type TransformInbound = (subState: SS, key: keyof S, state: S) => ESS; export declare type TransformOutbound = (state: SS, key: keyof RS, rawState: RS) => HSS; export interface Transform { in: TransformInbound; out: TransformOutbound; deepPersistKey?: string; } export declare type Transforms = Array>; export interface PersistConfig { version?: number; storage: Storage; key: string; keyPrefix?: string; blacklist?: Array; whitelist?: Array; transforms?: Array>; throttle?: number; migrate?: PersistMigrate; stateReconciler?: false | StateReconciler; getStoredState?: (config: PersistConfig) => Promise; debug?: boolean; serialize?: boolean; timeout?: number; writeFailHandler?: (err: Error) => void; } export declare type StateReconciler = (inboundState: any, state: S, reducedState: S, config: PersistConfig) => S; export declare type TObject = Record; export declare type RootKeysGroup = { [key: string]: string[] | undefined; }; export declare enum ConfigType { WHITELIST = 0, BLACKLIST = 1 } export interface GetPersistConfigArgs extends Omit, 'stateReconciler'> { rootReducer: Reducer; } //# sourceMappingURL=types.d.ts.map