import { ActionType } from '@apollo-orbit/core';
import { OperatorFunction } from 'rxjs';
export type ActionStatus = 'dispatched' | 'success' | 'error';
export interface ActionExecution<TAction = any, TError = Error> {
    status: ActionStatus;
    action: TAction;
    error?: TError;
}
export interface ActionComplete<TAction = any, TError = Error> {
    action: TAction;
    error?: TError;
    status: Extract<ActionStatus, 'success' | 'error'>;
}
export declare function ofActionDispatched<TActionTypes extends Array<ActionType<any>>>(...actions: TActionTypes): OperatorFunction<ActionExecution<InstanceType<TActionTypes[number]>>, InstanceType<TActionTypes[number]>>;
export declare function ofActionSuccess<TActionTypes extends Array<ActionType<any>>>(...actions: TActionTypes): OperatorFunction<ActionExecution<InstanceType<TActionTypes[number]>>, InstanceType<TActionTypes[number]>>;
export declare function ofActionError<TActionTypes extends Array<ActionType<any>>>(...actions: TActionTypes): OperatorFunction<ActionExecution<InstanceType<TActionTypes[number]>>, InstanceType<TActionTypes[number]>>;
export declare function ofActionComplete<TActionTypes extends Array<ActionType<any>>>(...actions: TActionTypes): OperatorFunction<ActionExecution<InstanceType<TActionTypes[number]>>, ActionComplete<InstanceType<TActionTypes[number]>>>;
