import { AnyAction } from 'redux'; import { Observable } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { StateObservable } from 'redux-observable'; import { EpicDependencies, ModuleEpic } from '../Core/Store'; export interface Action { readonly type: Type; readonly payload: Payload; } export interface ActionTypeGuard> { (action: { type: string; }): action is T; } export interface ActionTypeGuardContainer> { isOfType: ActionTypeGuard; } export declare type ActionCreator = T extends Action ? Args extends any[] ? { readonly type: Type; (...args: Args): T; } & ActionTypeGuardContainer : { readonly type: Type; (): T; } & ActionTypeGuardContainer : never; export declare type InferAction = T extends ActionCreator ? A : T extends ActionCreator ? A : never; export declare function makeActionCreator(type: Type): ActionCreator, []>; export declare function makeActionCreator(type: Type, createPayload: (...args: Args) => Payload): ActionCreator, Args>; export declare type GenericActionCreator = ActionCreator, any>; export interface Request2Fulfill { (requestActions: T, state: StateObservable, dependencies: EpicDependencies): Promise; } export interface MapRequestActionsToEpicOptions { areActionsNew?: (actions: T, prevActions: T) => boolean; areActionsCoherent?: (actions: T, state: State) => boolean; } interface Pred { (value: T): boolean; } /** * A factory for `OperatorFunction`. Examples of `OperatorFactory` * are `mergeMap`, `concatMap`, and `switchMap` from `rxjs/operators`. */ declare type MapOperatorFactory = typeof mergeMap; /** * Creates an Epic that calls `request2Fulfill` when actions matching the * supplied set of ActionCreators have been dispatched. `request2Fulfill` is * called when all of the actions have been dispatched, and when any of them * are dispatched thereafter. */ interface MapRequestActionsToEpic { , State>(actionCreators: [ActionCreator], request2Fulfill: Request2Fulfill<[A1], State>, options?: MapRequestActionsToEpicOptions<[A1], State>): ModuleEpic; , A2 extends Action, State>(actionCreators: [ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2], State>, options?: MapRequestActionsToEpicOptions<[A1, A2], State>): ModuleEpic; , A2 extends Action, A3 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3], State>): ModuleEpic; , A2 extends Action, A3 extends Action, A4 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3, A4], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3, A4], State>): ModuleEpic; , A2 extends Action, A3 extends Action, A4 extends Action, A5 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3, A4, A5], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3, A4, A5], State>): ModuleEpic; , A2 extends Action, A3 extends Action, A4 extends Action, A5 extends Action, A6 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3, A4, A5, A6], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3, A4, A5, A6], State>): ModuleEpic; , A2 extends Action, A3 extends Action, A4 extends Action, A5 extends Action, A6 extends Action, A7 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3, A4, A5, A6, A7], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3, A4, A5, A6, A7], State>): ModuleEpic; , A2 extends Action, A3 extends Action, A4 extends Action, A5 extends Action, A6 extends Action, A7 extends Action, A8 extends Action, State>(actionCreators: [ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator, ActionCreator], request2Fulfill: Request2Fulfill<[A1, A2, A3, A4, A5, A6, A7, A8], State>, options?: MapRequestActionsToEpicOptions<[A1, A2, A3, A4, A5, A6, A7, A8], State>): ModuleEpic; } /** * Factory that creates a `MapRequestActionsToEpic` function with the supplied * `MapOperatorFactory`. */ export declare const mapRequestActionsToEpicWith: (mapOperatorFactory: MapOperatorFactory) => MapRequestActionsToEpic; /** * `MapRequestActionsToEpic` that uses `mergeMap` to rate limit output actions. */ export declare const mergeMapRequestActionsToEpic: MapRequestActionsToEpic; /** * `MapRequestActionsToEpic` that uses `concatMap` to rate limit output actions. */ export declare const concatMapRequestActionsToEpic: MapRequestActionsToEpic; /** * `MapRequestActionsToEpic` that uses `switchMap` to rate limit output actions. */ export declare const switchMapRequestActionsToEpic: MapRequestActionsToEpic; interface TakeEpicInWindowOptions { startActionCreator: ActionCreator; endActionCreator: ActionCreator; compareStartAndEndActions?: (startAction: StartAction, endAction: EndAction) => boolean; } /** * Starts the target epic when `startAction` is emitted, until `endAction` is * emitted. */ export declare function takeEpicInWindow(options: TakeEpicInWindowOptions, epic: ModuleEpic): ModuleEpic; export declare function combineLatestIf(s1: Observable, pred: Pred<[T]>): Observable<[T]>; export declare function combineLatestIf(s1: Observable, s2: Observable, pred: Pred<[T, T2]>): Observable<[T, T2]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, pred: Pred<[T, T2, T3]>): Observable<[T, T2, T3]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, s4: Observable, pred: Pred<[T, T2, T3, T4]>): Observable<[T, T2, T3, T4]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, s4: Observable, s5: Observable, pred: Pred<[T, T2, T3, T4, T5]>): Observable<[T, T2, T3, T4, T5]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, s4: Observable, s5: Observable, s6: Observable, pred: Pred<[T, T2, T3, T4, T5, T6]>): Observable<[T, T2, T3, T4, T5, T6]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, s4: Observable, s5: Observable, s6: Observable, s7: Observable, pred: Pred<[T, T2, T3, T4, T5, T6, T7]>): Observable<[T, T2, T3, T4, T5, T6, T7]>; export declare function combineLatestIf(s1: Observable, s2: Observable, s3: Observable, s4: Observable, s5: Observable, s6: Observable, s7: Observable, s8: Observable, pred: Pred<[T, T2, T3, T4, T5, T6, T7, T8]>): Observable<[T, T2, T3, T4, T5, T6, T7, T8]>; export declare function combineLatestIf(sources: Array>, pred: (values: T[]) => boolean): Observable; export declare type Partial1 = T extends (soleArg: infer sole) => infer Return ? () => Return : T extends (first: infer first, ...rest: infer Rest) => infer Return ? (...rest: Rest) => Return : never; export declare function partial(fn: F, t: T): Partial1; export {}; //# sourceMappingURL=ActionCreatorUtils.d.ts.map