export { Observable as t }; type UnaryFunction = (a: A) => B; export interface ObservableLike { subscribe(observerOrNext?: Observer | ((value: T) => void)): Subscription; } /** * An `Observer` subscribes to an observable. */ export type Observer = { next?(value: T): void; error?(error: unknown): void; complete?(): void; }; /** * An `Operator` is a function that takes an observable as input and returns a * new observable as output. */ export type Operator = (observable: ObservableLike) => ObservableLike; /** * A `Subscription` is returned when an observer subscribes to an observable. */ export type Subscription = { unsubscribe(): void; }; export declare enum State { Complete = "Complete", Error = "Error", NotComplete = "NotComplete", Unsubscribed = "Unsubscribed" } /** * Observables are lazy push data structures that can emit values both * synchronously and asynchronously. Observables are unicast and, unlike * promises, may never emit a value or may emit many values. * * @example * * ``` * const observable = new Observable(observer => { * observer.next(1); * observer.next(2); * * setTimeout(() => { * observer.next(3); * observer.complete(); * }); * }); * * // Logs the values 1 and 2 synchronously and then the value 3 asynchronously. * observable.subscribe(console.log); * ``` * * @see https://reactivex.io/documentation/observable.html for an introduction * to observables. * * @see https://rxjs.dev for a more comprehensive observable library for * JavaScript. */ export declare class Observable implements ObservableLike { #private; constructor(subscribe: (observer: Observer) => (() => void) | void); /** * Allows chaining operators to perform flow control. * * @example * * Observable.of(1, "2", 3, 4.5).pipe( * filter(Number.isInteger), * map(num => num * 2) * ) */ pipe(): Observable; pipe(op1: UnaryFunction, A>): A; pipe(op1: UnaryFunction, A>, op2: UnaryFunction): B; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction): C; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction): D; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction): E; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction): F; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction): G; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction): H; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction): I; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction, ...operations: Operator[]): Observable; pipe(op1: UnaryFunction, A>, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction, ...operations: Operator[]): unknown; /** * Start receiving values from this observable as they are emitted. */ subscribe(observerOrNext?: Observer | ((value: T) => void)): Subscription; } //# sourceMappingURL=Observable.d.ts.map