import { InvokeableWithoutParam, Source, Subscriber, Subscription } from "../_core"; import { Transaction } from "../_tx"; import { EventStream } from "../EventStream"; import { Observable } from "../Observable"; export declare function makeMultiSourceStream(observables: Array>, ctor: MultiSourceCtor): EventStream; export declare type MultiSourceCtor = new (sources: Array>) => MultiSource; export declare abstract class MultiSource implements Source, Subscription, InvokeableWithoutParam { protected concurrency: number; readonly weight: number; protected head: MultiSourceNode | null; protected sink: Subscriber; protected active: boolean; protected ord: number; constructor(sources: Array>, concurrency: number); subscribe(subscriber: Subscriber, order: number): Subscription; activate(initialNeeded: boolean): void; dispose(): void; reorder(order: number): void; invoke(): void; mNext(tx: Transaction, val: T): void; mError(tx: Transaction, err: Error): void; abstract mEnd(tx: Transaction, node: MultiSourceNode): void; } export declare class MultiSourceNode implements Subscriber { m: MultiSource; src: Source; h: MultiSourceNode | null; t: MultiSourceNode | null; subs: Subscription; constructor(m: MultiSource, src: Source, h: MultiSourceNode | null, t: MultiSourceNode | null); subscribe(order: number): void; activate(initialNeeded: boolean): void; dispose(): void; next(tx: Transaction, val: T): void; error(tx: Transaction, err: Error): void; end(tx: Transaction): void; }