/** * Based on * At commit: f63849a8c60af5d514efc8e9d6138d8273c49ad6 */ import "./symbols"; export declare type UnsubscribeFn = () => void; export declare type Subscriber = (observer: SubscriptionObserver) => (UnsubscribeFn | Subscription | void); export interface ObservableLike { subscribe: (observer: Observer) => (UnsubscribeFn | { unsubscribe: UnsubscribeFn; } | void); [Symbol.observable](): Observable | ObservableLike; } export interface Observer { start?(subscription: Subscription): any; next?(value: T): void; error?(errorValue: any): void; complete?(): void; } export declare class Subscription { _cleanup?: ReturnType>; _observer?: Observer; _queue?: Array<{ type: "next" | "error" | "complete"; value: any; }>; _state: "initializing" | "ready" | "buffering" | "running" | "closed"; constructor(observer: Observer, subscriber: Subscriber); get closed(): boolean; unsubscribe(): void; } export declare class SubscriptionObserver { private _subscription; constructor(subscription: Subscription); get closed(): boolean; next(value: T): void; error(value: any): void; complete(): void; } /** * The basic Observable class. This primitive is used to wrap asynchronous * data streams in a common standardized data type that is interoperable * between libraries and can be composed to represent more complex processes. */ export declare class Observable { [Symbol.observable]: () => this; private _subscriber; constructor(subscriber: Subscriber); subscribe(onNext: (value: T) => void, onError?: (error: any) => void, onComplete?: () => void): Subscription; subscribe(observer: Observer): Subscription; pipe>(first: (input: ObservableLike) => Out): Out; pipe, Inter1 extends ObservableLike>(first: (input: ObservableLike) => Inter1, second: (input: Inter1) => Out): Out; pipe, Inter1 extends ObservableLike, Inter2 extends ObservableLike>(first: (input: ObservableLike) => Inter1, second: (input: Inter1) => Inter2, third: (input: Inter2) => Out): Out; pipe, Inter1 extends ObservableLike, Inter2 extends ObservableLike, Inter3 extends ObservableLike>(first: (input: ObservableLike) => Inter1, second: (input: Inter1) => Inter2, third: (input: Inter2) => Inter3, fourth: (input: Inter3) => Out): Out; pipe, Inter1 extends ObservableLike, Inter2 extends ObservableLike, Inter3 extends ObservableLike, Inter4 extends ObservableLike>(first: (input: ObservableLike) => Inter1, second: (input: Inter1) => Inter2, third: (input: Inter2) => Inter3, fourth: (input: Inter3) => Inter4, fifth: (input: Inter4) => Out): Out; pipe, Inter1 extends ObservableLike, Inter2 extends ObservableLike, Inter3 extends ObservableLike, Inter4 extends ObservableLike, Inter5 extends ObservableLike>(first: (input: ObservableLike) => Inter1, second: (input: Inter1) => Inter2, third: (input: Inter2) => Inter3, fourth: (input: Inter3) => Inter4, fifth: (input: Inter4) => Inter5, sixth: (input: Inter5) => Out): Out; pipe>(...mappers: Array<(input: Out) => Out>): Out; tap(onNext: (value: T) => void, onError?: (error: any) => void, onComplete?: () => void): Observable; tap(observer: Observer): Observable; forEach(fn: (value: T, done: UnsubscribeFn) => void): Promise; map(fn: (value: T) => R): Observable; filter(fn: (value: T) => boolean): Observable; reduce(fn: (accumulated: R | T, value: T) => R): Observable; reduce(fn: (accumulated: R, value: T) => R, seed: R): Observable; concat(...sources: Array>): Observable; flatMap(fn: (value: T) => ObservableLike): Observable; static from(x: Observable | ObservableLike | ArrayLike): Observable; static of(...items: I[]): Observable; } export default Observable;