import { ZenObservable } from './types'; export { ZenObservable }; export declare type Observer = ZenObservable.Observer; export declare type Subscriber = ZenObservable.Subscriber; export declare type ObservableLike = ZenObservable.ObservableLike; export declare class Subscription implements ZenObservable.Subscription { _observer?: ZenObservable.Observer; _cleanup: () => void; constructor(observer: ZenObservable.Observer, subscriber: ZenObservable.Subscriber); readonly closed: boolean; unsubscribe(): void; } export declare class SubscriptionObserver implements ZenObservable.SubscriptionObserver { private _subscription; constructor(subscription: Subscription); readonly closed: boolean; next(value: T): void; error(value: T): void; complete(): void; } export default class Observable { private _subscriber; static from(observable: Observable | ZenObservable.ObservableLike | ArrayLike): Observable; static of(...items: R[]): Observable; constructor(subscriber: ZenObservable.Subscriber); subscribe(observerOrNext: ((value: T) => void) | ZenObservable.Observer, error?: (error: any) => void, complete?: () => void): ZenObservable.Subscription; forEach(fn: (value: T) => void): Promise; map(fn: (value: T) => R): Observable; filter(fn: (value: T) => boolean): Observable; reduce(fn: (previousValue: R | T, currentValue: T) => R | T, initialValue?: R | T): Observable; flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable; }