import Observable from 'zen-observable'; import type { ObservableLike, Subscriber } from 'zen-observable/esm'; import PushStream from 'zen-push'; import { type Event } from './events.ts'; export { Observable, PushStream, type Subscriber }; /** * Observable which supports multiple subscribers and stores the current value. * * The current value is emitted to new subscribers on subscription. */ export declare class MulticastObservable extends Observable { protected _value?: T | undefined; private readonly _observers; private readonly _observable; private readonly _completed; constructor(subscriber: Observable | Subscriber, _value?: T | undefined); static from(value: Observable | ObservableLike | ArrayLike | Event, initialValue?: T): MulticastObservable; static of(...items: T[]): MulticastObservable; /** * @returns Stable reference to an observable that always returns `undefined`. */ static empty(): MulticastObservable; /** * Get the current value of the observable. */ get(): T; /** * Wait for the observable to complete. * * @returns Promise that resolves to the value of the observable at the time of completion. */ wait({ timeout }?: { timeout?: number; }): Promise; forEach(callback: (value: T) => void): Promise; map(callback: (value: T) => R): MulticastObservable; filter(callback: (value: T) => boolean): MulticastObservable; reduce(callback: (previousValue: R, currentValue: T) => R, initialValue?: R): MulticastObservable; flatMap(callback: (value: T) => MulticastObservable): MulticastObservable; concat(...observables: Array>): MulticastObservable; /** * Concatenates multicast observables without losing the current value. * @param reducer reduces the values of any multicast observables being concatenated into a single value * @param observables observables to concatenate * @returns concatenated observable */ losslessConcat(reducer: (currentValue: R, newValues: R[]) => R, ...observables: Array>): MulticastObservable; private _subscribe; private _handlers; } //# sourceMappingURL=observable.d.ts.map