import { IFetchApiResponse } from "../fetch/core"; import { IReducerAction, IThunkAction, IPromiseAction, IFetchApiAction } from "./actions"; import { StateStatus, StateKeyType } from "./state"; import { Dispatch } from "redux"; export declare class ActionFactory { /** Reducer Action - not handled by middleware */ reducer(type: string, payload: T, status?: StateStatus, stateKey?: StateKeyType): IReducerAction; /** Fetch Api middleware Action */ fetchApi(type: string, promise: Promise>, stateKey?: StateKeyType, modifyPayload?: (status: StateStatus, value: any) => T): IFetchApiAction; /** Promise middleware Action */ promise(type: string, promise: Promise, stateKey?: StateKeyType, modifyPayload?: (status: StateStatus, value: any) => T): IPromiseAction; /** Thunk middleware Action */ thunk(thunk: (dispatch: Dispatch, getState: () => TState) => T): IThunkAction; } /** create an action */ export declare function createActionFactory(): ActionFactory;