import { Dispatch } from 'redux'; declare type MaybePayload

= P extends object | string | boolean | number ? { payload: P; } : { payload?: P; }; export declare type Action = { type: T; } & MaybePayload

; export declare type Dictionary = { [key: string]: T; }; export declare type Mutation = (payload: A['payload'], action: A) => (state: S) => S; export declare type ActionPayloadGenerator = (...args: any[]) => any; export declare type ActionCreator = { type: T; _genericAction?: boolean; } & ((...args: any[]) => Action); export declare type UpduxDispatch = Dispatch & Dictionary; export declare type UpduxConfig = { initial?: S; subduxes?: {}; actions?: { [type: string]: ActionCreator; }; mutations?: any; groomMutations?: (m: Mutation) => Mutation; effects?: Dictionary>; }; export declare type Upreducer = (action: Action) => (state: S) => S; export interface UpduxMiddlewareAPI { dispatch: UpduxDispatch; getState(): any; getRootState(): S; } export declare type UpduxMiddleware = (api: UpduxMiddlewareAPI) => (next: UpduxDispatch) => (action: Action) => any; export {}; //# sourceMappingURL=types.d.ts.map