import { Subscription } from './subscription'; 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 { subscribe: (observer: Observer) => Subscription; }