1import { Observable } from '../Observable';
2import { Operator } from '../Operator';
3import { Subscriber } from '../Subscriber';
4import { TeardownLogic, ObservableInput } from '../types';
5import { OuterSubscriber } from '../OuterSubscriber';
6import { InnerSubscriber } from '../InnerSubscriber';
7export declare function race<A>(arg: [ObservableInput<A>]): Observable<A>;
8export declare function race<A, B>(arg: [ObservableInput<A>, ObservableInput<B>]): Observable<A | B>;
9export declare function race<A, B, C>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<A | B | C>;
10export declare function race<A, B, C, D>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<A | B | C | D>;
11export declare function race<A, B, C, D, E>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<A | B | C | D | E>;
12export declare function race<T>(arg: ObservableInput<T>[]): Observable<T>;
13export declare function race(arg: ObservableInput<any>[]): Observable<{}>;
14export declare function race<A>(a: ObservableInput<A>): Observable<A>;
15export declare function race<A, B>(a: ObservableInput<A>, b: ObservableInput<B>): Observable<A | B>;
16export declare function race<A, B, C>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>): Observable<A | B | C>;
17export declare function race<A, B, C, D>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>): Observable<A | B | C | D>;
18export declare function race<A, B, C, D, E>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>, e: ObservableInput<E>): Observable<A | B | C | D | E>;
19export declare function race<T>(observables: ObservableInput<T>[]): Observable<T>;
20export declare function race(observables: ObservableInput<any>[]): Observable<{}>;
21export declare function race<T>(...observables: ObservableInput<T>[]): Observable<T>;
22export declare function race(...observables: ObservableInput<any>[]): Observable<{}>;
23export declare class RaceOperator<T> implements Operator<T, T> {
24    call(subscriber: Subscriber<T>, source: any): TeardownLogic;
25}
26/**
27 * We need this JSDoc comment for affecting ESDoc.
28 * @ignore
29 * @extends {Ignored}
30 */
31export declare class RaceSubscriber<T> extends OuterSubscriber<T, T> {
32    private hasFirst;
33    private observables;
34    private subscriptions;
35    constructor(destination: Subscriber<T>);
36    protected _next(observable: any): void;
37    protected _complete(): void;
38    notifyNext(outerValue: T, innerValue: T, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, T>): void;
39}
40