import { IReducerMap, Reducer } from './reducer'; import { ISelectorMap } from './selector'; import { IModelDefinition } from './model'; export interface IInvokeDefinitionOptions { initialState?: any; [name: string]: any; } export declare type ReducerMapOrConstructor = IReducerMap | ReducerMapConstructor; export declare type ReducerMapConstructor = (options: IInvokeDefinitionOptions) => IReducerMap; export interface ICreateDefinition { reducers: ReducerMapOrConstructor; selectors: ISelectorMap; defaultState: LocalState; transformInitialState?: (initialState: any, params: { namespacing: string[]; }) => LocalState; } export interface IDefinitionReducerMap { [name: string]: Reducer; } export declare type DefinitionGenerator = (namespacing: string[]) => IModelDefinition; export interface ICompiledDefinition { generate: DefinitionGenerator; } export interface IReducerDefinition { (options?: IInvokeDefinitionOptions): ICompiledDefinition; generate: DefinitionGenerator; }