declare type MapOf = { [name: string]: T; }; export declare type ActionCreator = Function | Generator; export declare type Resolver = Function | Generator; export declare type Selector = Function; export declare type AnyConfig = ReduxStoreConfig; export interface StoreInstance { getSelectors: () => SelectorsOf; getActions: () => ActionCreatorsOf; subscribe: (listener: () => void) => () => void; } export interface StoreDescriptor { /** * Store Name */ name: string; /** * Creates a store instance */ instantiate: (registry: DataRegistry) => StoreInstance; } export interface ReduxStoreConfig, Selectors extends MapOf> { initialState?: State; reducer: (state: any, action: any) => any; actions?: ActionCreators; resolvers?: MapOf; selectors?: Selectors; controls?: MapOf; } export interface DataRegistry { register: (store: StoreDescriptor) => void; } export interface DataEmitter { emit: () => void; subscribe: (listener: () => void) => () => void; pause: () => void; resume: () => void; isPaused: boolean; } declare type ActionCreatorsOf = Config extends ReduxStoreConfig ? { [name in keyof ActionCreators]: Function | Generator; } : never; declare type SelectorsOf = Config extends ReduxStoreConfig ? { [name in keyof Selectors]: Function; } : never; export {}; //# sourceMappingURL=types.d.ts.map