export interface Observer { next(value: T): void; error(exception?: any): void; complete(): void; } export type SubscribeFn = (observer: Observer) => UnsubscribeFn; export type UnsubscribeFn = () => void; export interface Deferred extends Promise { resolve(value: T): void; reject(reason?: any): void; } export declare function defer(): Deferred; export interface Next { (): Promise<[T, boolean]>; } export declare function createSubscribeFn(next: Next, wait?: Promise): SubscribeFn; export declare function subscribeFnToAsyncGenerator(subscribe: SubscribeFn): AsyncGenerator;