import { TypeConstant, ActionCreatorBuilder, ActionBuilder } from './type-helpers'; export declare function throwInvalidAsyncActionArgument(argPosition: number): never; declare type AsyncActionHandler = [TArgs] extends [never] ? ActionCreatorBuilder : (...args: TArgs) => ActionBuilder; interface AsyncAction { (): [TType4] extends [never] ? { request: AsyncActionHandler; success: AsyncActionHandler; failure: AsyncActionHandler; } : { request: AsyncActionHandler; success: AsyncActionHandler; failure: AsyncActionHandler; cancel: AsyncActionHandler; }; } export declare function createAsyncAction(requestArg: TType1, successArg: TType2, failureArg: TType3, cancelArg?: TType4): AsyncAction; export declare function createAsyncAction TPayload1) | undefined = undefined, TPayloadCreator2 extends ((...args: TArgs2) => TPayload2) | undefined = undefined, TPayloadCreator3 extends ((...args: TArgs3) => TPayload3) | undefined = undefined, TPayloadCreator4 extends ((...args: TArgs4) => TPayload4) | undefined = undefined, TMetaCreator1 extends ((...args: TArgs1) => TMeta1) | undefined = undefined, TMetaCreator2 extends ((...args: TArgs2) => TMeta2) | undefined = undefined, TMetaCreator3 extends ((...args: TArgs3) => TMeta3) | undefined = undefined, TMetaCreator4 extends ((...args: TArgs4) => TMeta4) | undefined = undefined, TPayload1 extends any = TPayloadCreator1 extends ((...args: any[]) => infer T) ? T : undefined, TMeta1 extends any = TMetaCreator1 extends ((...args: any[]) => infer T) ? T : undefined, TPayload2 extends any = TPayloadCreator2 extends ((...args: any[]) => infer T) ? T : undefined, TMeta2 extends any = TMetaCreator2 extends ((...args: any[]) => infer T) ? T : undefined, TPayload3 extends any = TPayloadCreator3 extends ((...args: any[]) => infer T) ? T : undefined, TMeta3 extends any = TMetaCreator3 extends ((...args: any[]) => infer T) ? T : undefined, TPayload4 extends any = TPayloadCreator4 extends ((...args: any[]) => infer T) ? T : undefined, TMeta4 extends any = TMetaCreator4 extends ((...args: any[]) => infer T) ? T : undefined, TArgs1 extends any[] = TPayloadCreator1 extends ((...args: infer T) => any) ? T : TMetaCreator1 extends ((...args: infer T) => any) ? T : never, TArgs2 extends any[] = TPayloadCreator2 extends ((...args: infer T) => any) ? T : TMetaCreator2 extends ((...args: infer T) => any) ? T : never, TArgs3 extends any[] = TPayloadCreator3 extends ((...args: infer T) => any) ? T : TMetaCreator3 extends ((...args: infer T) => any) ? T : never, TArgs4 extends any[] = TPayloadCreator4 extends ((...args: infer T) => any) ? T : TMetaCreator4 extends ((...args: infer T) => any) ? T : never>(requestArg: TType1 | [TType1, TPayloadCreator1] | [TType1, TPayloadCreator1, TMetaCreator1], successArg: TType2 | [TType2, TPayloadCreator2] | [TType2, TPayloadCreator2, TMetaCreator2], failureArg: TType3 | [TType3, TPayloadCreator3] | [TType3, TPayloadCreator3, TMetaCreator3], cancelArg?: TType4 | [TType4, TPayloadCreator4] | [TType4, TPayloadCreator4, TMetaCreator4]): AsyncAction; export {};