import { Action, GenericAction } from './index';
export declare type ActionCreator = (
(payload?: any, meta?: any) => GenericAction
) & ActionCreatorProps;
export declare interface ActionCreatorProps {
/**
* Exposes TYPE as static member.
*/
TYPE: string;
toString: () => string;
}
/**
* Create a redux action creator
*
* @template A The type of action the function can responde to
*
* @param name The name of the Action
*
* @param argsMapper Arguments mapper function
*
* @param options Optional data to pass to action creator
*
* @returns Action creator function
*/
export declare function makeActionCreator(
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
): ActionCreator;
export declare namespace makeActionCreator {
export type ArgsMapperFN = (...arg: any) => { payload?: A['payload'], meta?: A['meta'], [name: string]: any }
export interface DefaultsArg {
prefix?: string;
defaultMeta?: any;
}
export interface Options {
argsMapper?: ArgsMapperFN;
defaultMeta: A['meta'];
}
/**
* Create an action creator with default prefix or metadata
*/
export function withDefaults(args: 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?: Options
) => ActionCreator;
}
export default makeActionCreator;