import { EventStream } from "./observable"; import { End } from "./event"; import { EventSink } from "./types"; export declare type VoidFunction = () => void; /** * Delay function used by `bufferWithTime` and `bufferWithTimeOrCount`. Your implementation should * call the given void function to cause a buffer flush. */ export declare type DelayFunction = (f: VoidFunction) => any; /** @hidden */ export declare function bufferWithTime(src: EventStream, delay: number | DelayFunction): EventStream; /** @hidden */ export declare function bufferWithCount(src: EventStream, count: number): EventStream; /** @hidden */ export declare function bufferWithTimeOrCount(src: EventStream, delay?: number | DelayFunction, count?: number): EventStream; declare class Buffer { constructor(onFlush: BufferHandler, onInput: BufferHandler); delay?: DelayFunction; onInput: BufferHandler; onFlush: BufferHandler; push: EventSink; scheduled: number | null; end: End | undefined; values: V[]; flush(): any; schedule(delay: DelayFunction): any; } declare type BufferHandler = (buffer: Buffer) => any; /** @hidden */ export declare function buffer(src: EventStream, onInput?: BufferHandler, onFlush?: BufferHandler): EventStream; export {};