type NextHandler = (value: T) => void; type ErrorHandler = (error: unknown) => void; type CompleteHandler = () => void; declare global { interface SymbolConstructor { readonly observable: symbol; } } export type Observer = { next?: NextHandler; error?: ErrorHandler; complete?: CompleteHandler; }; export type SubscriptionLike = { closed?: boolean; unsubscribe: () => void; }; export type Observable = { subscribe: { (observer: Observer): SubscriptionLike; (next?: NextHandler | null, error?: ErrorHandler | null, complete?: CompleteHandler | null): SubscriptionLike; }; }; export type InteropObservable = Observable & AsyncIterable & { readonly [Symbol.observable]: () => Observable; readonly '@@observable': () => Observable; }; type ObservableController = { observable: InteropObservable; next: (value: T) => void; error: (error: unknown) => void; complete: () => void; }; export declare const EMPTY: InteropObservable; export declare function createObservableController(): ObservableController; type ObservableValue = T extends Observable ? Value : never; export declare function isObservableLike(value: T): value is T & Observable>; export declare function observableToAsyncIterable(source: Observable): AsyncIterable; export {};