import makeActionCreator, { ActionCreator } from './makeActionCreator';
import { Action } from '.';
export declare const ACTION_ASYNC_REQUEST_SUFFIX: string;
export declare const ACTION_ASYNC_SUCCESS_SUFFIX: string;
export declare const ACTION_ASYNC_FAILURE_SUFFIX: string;
export declare const ACTION_ASYNC_PROGRESS_SUFFIX: string;
export declare const ACTION_ASYNC_CANCEL_SUFFIX: string;
export declare const ACTION_ASYNC_SUCCESS_METHOD: string;
export declare const ACTION_ASYNC_FAILURE_METHOD: string;
export declare const ACTION_ASYNC_PROGRESS_METHOD: string;
export declare const ACTION_ASYNC_CANCEL_METHOD: string;
export type AsyncActionCreator = ActionCreator & AsyncActionCreatorProps
export interface AsyncActionCreatorProps {
success: ActionCreator;
failure: ActionCreator;
progress: ActionCreator;
cancel: ActionCreator;
}
/**
* Wrapper around makeActionCreator(), to help create multiple actions
* creators for usage in async/side effects middlewares like
* redux-thunk, redux-saga or redux-observable.
*
* @template A The type of action the function can responde to
*
* @param {string} name The type name of the action
*
* @param {makeActionCreator.ArgsMapperFN} [argsMapper] Arguments mapper function
*
* @param {makeActionCreator.Options} [options] Optional data to pass to action creator
*
* @returns {AsyncActionCreator} Async action creator
*/
export declare function makeAsyncActionCreator(
name: string,
/**
* A mapper function that enables us to shape the payload and/or the meta
*/
argsMapper?: makeActionCreator.ArgsMapperFN,
/**
* Options to pass to action creator
* - argsMapper - Arguments mapper function
* - defaultMeta - Default metadata for the action
*/
options?: makeActionCreator.Options
): AsyncActionCreator;
export declare namespace makeAsyncActionCreator {
/**
* Create an action creator with default prefix or metadata
*/
export function withDefaults(args: makeActionCreator.DefaultsArg): (
name: string,
/**
* A mapper function that enables us to shape the payload and/or the meta
*/
argsMapper?: (arg?: any) => { payload?: A['payload'], meta?: A['meta'], [name: string]: any },
/**
* Options to pass to action creator
* - argsMapper - Arguments mapper function
* - defaultMeta - Default metadata for the action
*/
options?: any
) => AsyncActionCreator;
}
export default makeAsyncActionCreator;