export namespace ZenObservable { export interface SubscriptionObserver { closed: boolean; next(value: T): void; error(errorValue: any): void; complete(): void; } export interface Subscription { closed: boolean; unsubscribe(): void; } export interface Observer { start?(subscription: Subscription): any; next?(value: T): void; error?(errorValue: any): void; complete?(): void; } export type Subscriber = ( observer: SubscriptionObserver, ) => void | (() => void) | Subscription; export interface ObservableLike { subscribe?: Subscriber; } }