// Source: https://github.com/zenparsing/es-observable declare class Observable { constructor (subscriber: SubscriberFn) subscribe (observer: Observer): Subscription subscribe ( onNext: (value: T) => void, onError?: (error: Error) => void, onComplete?: (value?: any) => void ): Subscription static of (...items: T[]): Observable static from (observable: Observable): Observable static from (observable: Iterable): Iterable static from (observable: any): Observable } interface Observer { start (subscription: Subscription): void next (value: T): void error (error: Error): void complete (value?: any): void } interface Subscription { unsubscribe (): void closed: boolean } interface SubscriptionObserver { next (value: T): void error (error: Error): void complete (value?: any): void closed: boolean } type SubscriberFn = (observer: SubscriptionObserver) => (() => void) | Subscription