import Subscription, { Subscriber } from "./Subscription"; export interface IObserver { next(x: T): any; complete(): any; error(x: Error): any; } export interface IObservable extends IObserver { closed(): boolean; } export declare type SimpleObserver = (x: T) => any; export declare type UnaryFn = (source: T) => R; export declare type OperatorFunction = UnaryFn, Observable>; export default class Observable { protected subscriber: Subscriber; static of(...items: U[]): Observable; static from(items: U[]): Observable; constructor(subscriber: Subscriber); pipe(...fns: Array>): Observable; subscribe(observer: IObserver | SimpleObserver, error?: (err: Error) => void, complete?: () => void): Subscription; protected _subscribe(observer: IObserver, subscriber: Subscriber): Subscription; }