export interface IAction { type: string; } export interface IThunkAction extends IAction { executeThunk(store: S): void; } export declare type Reducer = (state: S, action: IAction) => S; export interface IReducerMap { [key: string]: Reducer; } export declare class SimpleStore { protected reducer: Reducer; protected state: S; constructor(reducer: Reducer); dispatch(action: IAction | IThunkAction>): void; getState(): S; }