import { Subscription } from './subscription'; /** Symbol.observable addition */ declare global { interface SymbolConstructor { readonly observable: symbol; } } declare let symbolObservable: any; export { symbolObservable }; export interface NextObserver { next: (value: T) => void; error?: (err: any) => void; complete?: () => void; } export interface ErrorObserver { next?: (value: T) => void; error: (err: any) => void; complete?: () => void; } export interface CompletionObserver { next?: (value: T) => void; error?: (err: any) => void; complete: () => void; } export declare type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; export interface NextAsyncObserver { next: (value: T) => void | Promise; error?: (err: any) => void | Promise; complete?: () => void | Promise; } export interface ErrorAsyncObserver { next?: (value: T) => void | Promise; error: (err: any) => void | Promise; complete?: () => void | Promise; } export interface CompletionAsyncObserver { next?: (value: T) => void | Promise; error?: (err: any) => void | Promise; complete: () => void | Promise; } export declare type PartialAsyncObserver = NextAsyncObserver | ErrorAsyncObserver | CompletionAsyncObserver; export interface Observer { closed?: boolean; next: (value: T) => void; error: (err: any) => void; complete: () => void; } export interface Observable { [Symbol.observable]: () => Observable; subscribe: (observerOrNext?: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) => Subscription; }