// Type definitions for redux-actions v0.8.0 // Project: https://github.com/acdlite/redux-actions // Definitions by: Jack Hsu , Alex Gorbatchev // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace ReduxActions { // FSA-compliant action. // See: https://github.com/acdlite/flux-standard-action interface BaseAction { type: string } interface Action extends BaseAction { payload?: Payload error?: boolean meta?: any } interface ActionMeta extends Action { meta: Meta } type PayloadCreator = (...args: Input[]) => Payload; type MetaCreator = (...args: Input[]) => Payload; type Reducer = (state: State, action: Action) => State; type ReducerMeta = (state: State, action: ActionMeta) => State; type ReducerMap = { [actionType: string]: Reducer }; export function createAction( actionType: string, payloadCreator?: PayloadCreator, metaCreator?: MetaCreator ): (...args: any[]) => Action; export function createAction( actionType: string, payloadCreator?: PayloadCreator ): (...args: InputAndPayload[]) => Action; export function createAction( actionType: string, payloadCreator?: PayloadCreator ): (...args: Input[]) => Action; export function createAction( actionType: string, payloadCreator: PayloadCreator, metaCreator: MetaCreator ): (...args: Input[]) => ActionMeta; export function handleAction( actionType: string, reducer: Reducer | ReducerMap ): Reducer; export function handleAction( actionType: string, reducer: ReducerMeta | ReducerMap ): Reducer; export function handleActions( reducerMap: ReducerMap, initialState?: State ): Reducer; } declare module 'redux-actions' { export = ReduxActions; }