import { Observable } from '../Observable';
import { Operator } from '../Operator';
import { Subscriber } from '../Subscriber';
import { TeardownLogic, ObservableInput } from '../types';
import { OuterSubscriber } from '../OuterSubscriber';
export declare function race(arg: [ObservableInput]): Observable;
export declare function race(arg: [ObservableInput, ObservableInput]): Observable;
export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput]): Observable;
export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;
export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;
export declare function race(arg: ObservableInput[]): Observable;
export declare function race(arg: ObservableInput[]): Observable<{}>;
export declare function race(a: ObservableInput): Observable;
export declare function race(a: ObservableInput, b: ObservableInput): Observable;
export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput): Observable;
export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput): Observable;
export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput, e: ObservableInput): Observable;
export declare function race(observables: ObservableInput[]): Observable;
export declare function race(observables: ObservableInput[]): Observable<{}>;
export declare function race(...observables: ObservableInput[]): Observable;
export declare function race(...observables: ObservableInput[]): Observable<{}>;
export declare class RaceOperator implements Operator {
call(subscriber: Subscriber, source: any): TeardownLogic;
}
/**
* We need this JSDoc comment for affecting ESDoc.
* @ignore
* @extends {Ignored}
*/
export declare class RaceSubscriber extends OuterSubscriber {
private hasFirst;
private observables;
private subscriptions;
constructor(destination: Subscriber);
protected _next(observable: any): void;
protected _complete(): void;
notifyNext(_outerValue: T, innerValue: T, outerIndex: number): void;
}