import { GlobalVariable } from '@gongt/ts-stl-library/pattern/global-page-data'; import { compose, Dispatch, Middleware, Reducer, Store, Unsubscribe } from 'redux'; import { ArrayOrSingle } from '../global'; import { IAction, IAData } from './action'; import { IState } from './preload-state'; import { IVirtualStore, IVirtualStoreConstructor } from './virtual-store'; export declare type AppStore = Store; export declare type ReduxStoreType = ReduxStore; export declare type LogicFunction = (store: ReduxStore) => void; export declare type BorderLogicFunction = (subscribe: (listener: (state: T) => void) => Unsubscribe, dispatch: Dispatch) => void; export declare type SimpleMiddleware = (store: AppStore, action: IAction) => void | IAction | Promise>; export declare const REDUX_PRELOAD_NAME = "__REDUX_PRELOAD_DATA__"; export interface MiddlewareCreator { (global: GlobalVariable): Middleware; } export interface IPlugin { __redux_plugin(reduxStore: ReduxStore): void; } /** * 根据逻辑函数(构造函数的参数)创建Store */ export declare class ReduxStore { middlewares: Middleware[]; processObject: BorderLogicFunction[]; subStore: { [id: string]: IVirtualStore; }; protected readonly composeEnhancers: typeof compose; private finished; private middleware_callbacks; constructor(logicRegister?: ArrayOrSingle>); createStore(global: GlobalVariable): AppStore; /** 添加预处理 */ logicDisplayBorder(middleware: BorderLogicFunction): void; plugin(plugin: IPlugin>): void; /** 添加子存储 */ register(Constructor: IVirtualStoreConstructor): void; /** 添加中间件 */ use(middleware: Middleware): void; useDynamic(callback: MiddlewareCreator): void; useSimple(middleware: SimpleMiddleware): void; protected combineReducers(): Reducer; protected getPreloadState(global: GlobalVariable): any; }