export declare type ActionCreator<T extends string> = {
    actionType: T;
    (): {
        type: T;
    };
};
export declare type ActionCreatorWithPayload<T extends string, Payload, Args extends Array<any>> = {
    actionType: T;
    (...args: Args): {
        type: T;
        payload: Payload;
    };
};
export declare type KeysToFunctions = {
    [key: string]: (...args: Array<any>) => any;
};
export declare type ActionTypeFromActionCreators<T extends KeysToFunctions> = ReturnType<T[keyof T]>;
export declare function createAction<T extends string>(type: T): ActionCreator<T>;
export declare function createAction<T extends string, Payload, Args extends Array<any>>(type: T, payloadCreator: (...args: Args) => Payload): ActionCreatorWithPayload<T, Payload, Args>;
