import { Subscription } from './subscription'; declare global { interface SymbolConstructor { readonly observable: symbol; } } export declare const observable: string | symbol; export interface NextObserver { next: (value: T) => any; error?: (err: any) => any; complete?: () => any; } export interface ErrorObserver { next?: (value: T) => any; error: (err: any) => any; complete?: () => any; } export interface CompletionObserver { next?: (value: T) => any; error?: (err: any) => any; complete: () => any; } export declare type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; export interface NextAsyncObserver { next: (value: T) => any | Promise; error?: (err: any) => any | Promise; complete?: () => any | Promise; } export interface ErrorAsyncObserver { next?: (value: T) => any | Promise; error: (err: any) => any | Promise; complete?: () => any | Promise; } export interface CompletionAsyncObserver { next?: (value: T) => any | Promise; error?: (err: any) => any | Promise; complete: () => any | 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 { subscribe(observer?: PartialObserver): Subscription; subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription; }