import { Observable, ObservableInput } from '../Observable';
import { Scheduler } from '../Scheduler';
/**
* Creates an output Observable which sequentially emits all values from every
* given input Observable after the current Observable.
*
* Concatenates multiple Observables together by
* sequentially emitting their values, one Observable after the other.
*
*
*
* Joins this Observable with multiple other Observables by subscribing to them
* one at a time, starting with the source, and merging their results into the
* output Observable. Will wait for each Observable to complete before moving
* on to the next.
*
* @example
Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10
* var timer = Rx.Observable.interval(1000).take(4);
* var sequence = Rx.Observable.range(1, 10);
* var result = timer.concat(sequence);
* result.subscribe(x => console.log(x));
*
* @example Concatenate 3 Observables
* var timer1 = Rx.Observable.interval(1000).take(10);
* var timer2 = Rx.Observable.interval(2000).take(6);
* var timer3 = Rx.Observable.interval(500).take(10);
* var result = timer1.concat(timer2, timer3);
* result.subscribe(x => console.log(x));
*
* @see {@link concatAll}
* @see {@link concatMap}
* @see {@link concatMapTo}
*
* @param {Observable} other An input Observable to concatenate after the source
* Observable. More than one input Observables may be given as argument.
* @param {Scheduler} [scheduler=null] An optional Scheduler to schedule each
* Observable subscription on.
* @return {Observable} All values of each passed Observable merged into a
* single Observable, in order, in serial fashion.
* @method concat
* @owner Observable
*/
export declare function concat(...observables: Array | Scheduler>): Observable;
export interface ConcatSignature {
(scheduler?: Scheduler): Observable;
(v2: ObservableInput, scheduler?: Scheduler): Observable;
(v2: ObservableInput, v3: ObservableInput, scheduler?: Scheduler): Observable;
(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: Scheduler): Observable;
(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: Scheduler): Observable;
(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: Scheduler): Observable;
(...observables: Array | Scheduler>): Observable;
(...observables: Array | Scheduler>): Observable;
}
export declare function concatStatic(v1: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(v1: ObservableInput, v2: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: Scheduler): Observable;
export declare function concatStatic(...observables: (ObservableInput | Scheduler)[]): Observable;
export declare function concatStatic(...observables: (ObservableInput | Scheduler)[]): Observable;