|  | import { Operator } from '../Operator'; | 
|  | import { Subscriber } from '../Subscriber'; | 
|  | import { Subscription } from '../Subscription'; | 
|  | import { OuterSubscriber } from '../OuterSubscriber'; | 
|  | import { InnerSubscriber } from '../InnerSubscriber'; | 
|  | import { ObservableInput, OperatorFunction } from '../types'; | 
|  | /** | 
|  | * Applies an accumulator function over the source Observable where the | 
|  | * accumulator function itself returns an Observable, then each intermediate | 
|  | * Observable returned is merged into the output Observable. | 
|  | * | 
|  | * <span class="informal">It's like {@link scan}, but the Observables returned | 
|  | * by the accumulator are merged into the outer Observable.</span> | 
|  | * | 
|  | * ## Example | 
|  | * Count the number of click events | 
|  | * ```ts | 
|  | * import { fromEvent, of } from 'rxjs'; | 
|  | * import { mapTo, mergeScan } from 'rxjs/operators'; | 
|  | * | 
|  | * const click$ = fromEvent(document, 'click'); | 
|  | * const one$ = click$.pipe(mapTo(1)); | 
|  | * const seed = 0; | 
|  | * const count$ = one$.pipe( | 
|  | *   mergeScan((acc, one) => of(acc + one), seed), | 
|  | * ); | 
|  | * count$.subscribe(x => console.log(x)); | 
|  | * | 
|  | * // Results: | 
|  | * // 1 | 
|  | * // 2 | 
|  | * // 3 | 
|  | * // 4 | 
|  | * // ...and so on for each click | 
|  | * ``` | 
|  | * | 
|  | * @param {function(acc: R, value: T): Observable<R>} accumulator | 
|  | * The accumulator function called on each source value. | 
|  | * @param seed The initial accumulation value. | 
|  | * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of | 
|  | * input Observables being subscribed to concurrently. | 
|  | * @return {Observable<R>} An observable of the accumulated values. | 
|  | * @method mergeScan | 
|  | * @owner Observable | 
|  | */ | 
|  | export declare function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent?: number): OperatorFunction<T, R>; | 
|  | export declare class MergeScanOperator<T, R> implements Operator<T, R> { | 
|  | private accumulator; | 
|  | private seed; | 
|  | private concurrent; | 
|  | constructor(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent: number); | 
|  | call(subscriber: Subscriber<R>, source: any): any; | 
|  | } | 
|  | /** | 
|  | * We need this JSDoc comment for affecting ESDoc. | 
|  | * @ignore | 
|  | * @extends {Ignored} | 
|  | */ | 
|  | export declare class MergeScanSubscriber<T, R> extends OuterSubscriber<T, R> { | 
|  | private accumulator; | 
|  | private acc; | 
|  | private concurrent; | 
|  | private hasValue; | 
|  | private hasCompleted; | 
|  | private buffer; | 
|  | private active; | 
|  | protected index: number; | 
|  | constructor(destination: Subscriber<R>, accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, acc: R, concurrent: number); | 
|  | protected _next(value: any): void; | 
|  | private _innerSub; | 
|  | protected _complete(): void; | 
|  | notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void; | 
|  | notifyComplete(innerSub: Subscription): void; | 
|  | } |