import { Observable } from '../Observable';
import { Operator } from '../Operator';
import { Subscriber } from '../Subscriber';
import { TeardownLogic } from '../types';
import { OuterSubscriber } from '../OuterSubscriber';
import { InnerSubscriber } from '../InnerSubscriber';
export declare function race(a: Observable, b: Observable): Observable | Observable;
export declare function race(a: Observable, b: Observable, c: Observable): Observable | Observable | Observable;
export declare function race(a: Observable, b: Observable, c: Observable, d: Observable): Observable | Observable | Observable | Observable;
export declare function race(a: Observable, b: Observable, c: Observable, d: Observable, e: Observable): Observable | Observable | Observable | Observable | Observable;
export declare function race(observables: Observable[]): Observable;
export declare function race(observables: Observable[]): Observable<{}>;
export declare function race(...observables: Observable[]): Observable;
export declare function race(...observables: Observable[]): 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, innerIndex: number, innerSub: InnerSubscriber): void;
}