export interface Action { type: string; } export interface ActionWithPayload

extends Action { payload: P; } export interface AsyncAction extends ActionWithPayload

{ onSuccess: (payload: S) => ActionWithPayload; onFail: (payload: string) => ActionWithPayload; } export declare function createAction(type: string): Action; export declare function createAction

(type: string, payload: P): ActionWithPayload

; export declare function createAsyncAction(type: string, payload: P): AsyncAction; export interface SuccessType { payload: T; } declare type FunctionType = (...args: any[]) => any; interface ActionCreatorsMapObject { [actionCreator: string]: FunctionType; } export declare type ActionsUnion = ReturnType; export {};