import { IObserver, IObservable } from "./Observable"; export declare type Subscriber = (observer: IObservable) => ISubscription | void; export interface ISubscription { unsubscribe(): void; } export declare class EmptySubscription implements IObservable, ISubscription { closed(): boolean; complete(): void; error(): void; next(x: T): void; unsubscribe(): void; } export default class Subscription implements IObservable, ISubscription { protected observer?: IObserver; protected source?: IObserver; private sub?; constructor(observer?: IObserver, subscriber?: Subscriber); closed(): boolean; unsubscribe(): void; next(value: T): any; error(err: Error): Error; complete(): void; }