import Observable from "../observable"; import { EventSink, Unsub } from "../types"; interface Event { value: V; } /** @hidden */ export declare abstract class Source { _isSource: boolean; obs: Observable; sync: boolean; flatten: boolean; ended: boolean; constructor(obs: Observable, sync: boolean); subscribe(sink: EventSink): Unsub; toString(): string; markEnded(): void; abstract consume(): Event | undefined; mayHave(count: number): boolean; abstract hasAtLeast(count: number): boolean; abstract push(event: Event): void; } /** @hidden */ export declare class DefaultSource extends Source { value: Event | undefined; consume(): Event | undefined; push(x: Event): void; hasAtLeast(c: number): boolean; } /** @hidden */ export declare class ConsumingSource extends Source { flatten: boolean; queue: Event[]; constructor(obs: Observable, sync: boolean); consume(): Event | undefined; push(x: Event): void; mayHave(count: number): boolean; hasAtLeast(count: number): boolean; } /** @hidden */ export declare class BufferingSource extends Source { queue: V[]; constructor(obs: Observable); consume(): Event; push(x: Event): number; hasAtLeast(count: number): boolean; } /** @hidden */ export declare function isTrigger(s: any): boolean; /** @hidden */ export declare function fromObservable(s: Source | Observable): Source; export {};