export type Action = { type: string, payload?: any, meta?: any, } export type Dictionary = { [key: string]: T }; export type Mutation = (payload: any, action: Action) => (state: S) => S ; export type ActionPayloadGenerator = (...args:any[]) => any; export type ActionCreator = (...args: any[] ) => Action; export type UpduxConfig = Partial<{ initial: S, subduxes: {}, actions: { [ type: string ]: ActionPayloadGenerator }, mutations: any, effects: any, }>; export type Upreducer = (action:Action) => (state:S) => S;