import { Store, PreloadedState, Reducer, AnyAction, Middleware, compose } from 'redux'; import { IReducers } from '../reducers/BaseReducer'; import { BaseModel } from '../models/BaseModel'; import { Persist, PersistStorage } from './Persist'; export interface ReduxStoreConfig { /** * Accept custom reducer which is not created by model. */ reducers?: IReducers; compose?: 'default' | 'redux-devtools' | typeof compose; middleware?: Middleware[]; preloadedState?: PreloadedState; persist?: { version: string | number; /** * The storage key */ key: string; storage: PersistStorage | Engine; /** * { * xModel, * yModel, * zModel, * } */ allowlist: Record>; }; } export declare class StoreHelper { protected readonly _persist: Persist; protected _store?: Store; protected reducers: IReducers; protected reducerKeys: string[]; protected dispatching: boolean; protected state: object; protected readonly combined: Reducer; constructor(); createStore(config?: ReduxStoreConfig): Store; appendReducers(autoReducer: IReducers): void; get store(): Store; get persist(): Persist; dispatch(action: T): T; getState(): { readonly [key: string]: any; }; onCreated(fn: () => void): Function; protected combineReducers(): Reducer; } export declare const storeHelper: StoreHelper;