declare module "redux-persist" { import { Store, StoreEnhancer } from "redux"; export interface Storage { setItem(key: string, value: any, onComplete?: OnComplete): Promise; getItem(key: string, onComplete?: OnComplete): Promise; removeItem(key: string, onComplete?: OnComplete): Promise; getAllKeys?(onComplete?: OnComplete): Promise; keys?: (...args: any[]) => any; [key: string]: any; // In case Storage object has some other (private?) methods and properties. } export interface PersistorConfig { blacklist?: string[]; whitelist?: string[]; storage?: Storage; transforms?: Array>; asyncTransforms?: boolean; debounce?: number; serialize?: boolean; keyPrefix?: string; } export type TransformIn = (state: State, key: string) => Raw; export type TransformOut = (raw: Raw, key: string) => State; export interface Transform { in: TransformIn; out: TransformOut; } export type OnComplete = (err?: any, result?: Result) => any; export interface RehydrateOptions { serial?: boolean; } export interface Persistor { purge(keys?: string[]): void; rehydrate(incoming: State, options: RehydrateOptions): undefined; pause(): void; resume(): void; } export type StateReconciler = (state: PrevState, inboundState: InboundState, reducedState: any, log: boolean) => NextState; export interface AutoRehydrateConfig { log?: boolean; stateReconciler?: StateReconciler; } export function autoRehydrate(autoRehydrateConfig?: AutoRehydrateConfig): StoreEnhancer; export function createPersistor(store: Store, persistorConfig: PersistorConfig): Persistor; export interface TransformConfig { whitelist?: string[]; blacklist?: string[]; } export function createTransform(transformIn: TransformIn, transformOut: TransformOut, config?: TransformConfig): Transform; export function getStoredState(persistorConfig?: PersistorConfig, onComplete?: OnComplete): undefined; export function persistStore(store: Store, persistorConfig?: PersistorConfig, onComplete?: OnComplete): Persistor; export function purgeStoredState(persistorConfig?: PersistorConfig, keys?: string[]): Promise; import * as storages from "redux-persist/storages"; export { storages }; } declare module "redux-persist/constants" { export const KEY_PREFIX = 'reduxPersist:'; export const REHYDRATE = 'persist/REHYDRATE'; } declare module "redux-persist/storages" { import { Storage } from "redux-persist"; export const asyncLocalStorage: Storage; export const asyncSessionStorage: Storage; }