import * as Redux from 'redux'; import { OduxConfig } from './OduxConfig'; import { BaseStore } from './BaseStore'; interface ChangeData { storeKey: string; paths: string[]; newValue: any; } export interface ActionType extends Redux.Action { data: ChangeData[]; } export declare class Odux { private config?; private static readonly REDUX_ACTION_TYPE; private readonly ioc; private eventBus; private changeDispatch; private debug; private reduxStore; private localStore; private dispatchTimer; private isTracking; constructor(config?: OduxConfig); dispose(): void; setReduxStore(store: Redux.Store): Odux; getReduxStore(): Redux.Store; initStores(StoreTypes?: any[]): void; registerStore(store: BaseStore): void; getStore(type: T): T extends new (...args: any[]) => infer R ? R : any; registerStorePath(storePath: string[], oldStoreKey?: string): string; getStoreData(storeKey: string): T; transactionChange(storeKey: string, func: () => void, err?: (data: Error) => void): any; applyChange(storeKeys: string[]): void; mainReducer(state: any, action: ActionType): any; private setValue; private storeChangeListener; private dispatchChange; private dispatchAction; } export {};