import { IReducerMap, Reducer } from './reducer'; import { IActionCreatorMaps, IActionCreatorMap, ActionCreator, IMappedActionCreatorMaps } from './actionCreator'; import { ISelectorMaps, ISelectorMap, IMappedSelectorMaps } from './selector'; export interface IMappedIntermediateModel { actions: IMappedActionCreatorMaps; initialState: {}; reducers: IReducerMap<{}>; selectors: IMappedSelectorMaps; } export interface IIntermediateModel { actions: IActionCreatorMaps; initialState: {}; reducers: IReducerMap<{}>; selectors: ISelectorMaps; } export interface IModelDefinition { kind: 'definition'; actions: IActionCreatorMap; initialState: {}; reducers: IReducerMap<{}>; selectors: ISelectorMap; } export interface IModelFunction { kind: 'function'; action: ActionCreator; reducers: IReducerMap<{}>; } export interface IModel { namespace: string; actions: IActionCreatorMaps; reducer: Reducer<{}>; selectors: ISelectorMaps; } export interface IModelMap { [key: string]: IModel; } export interface IMappedModel { namespace: string; actions: IMappedActionCreatorMaps; reducer: Reducer<{}>; selectors: IMappedSelectorMaps; } export declare type IMappedModelMap = { [Key in keyof Schema]: IMappedModel; };