import { Subject } from 'rxjs'; import { IStore, IState, IAction, StateChange, Reducer, StoreFactory } from './types'; export * from './types'; export interface IReducerItem { reducer: Reducer; actionType?: string; } export declare type IReducerItems = Array>; export interface IData { key?: string; reducers: IReducerItems; children: IChildStore[]; childDictionaries: IDictionaryStore[]; parent?: StoreInternal; current: S; state$: Subject>; context?: any; } export declare type StoreInternal = IStore & { data: IData; }; export interface IChildStore { path: string; store: StoreInternal; } export interface IDictionaryStore { path: string; factory: StoreFactory; items: IChildStore[]; isPersistent: boolean; }