export declare type QueueEvent = keyof EventHandlers; export declare type RemoveHandler = () => void; export declare type ListenHandler = (queue: Queue) => void | RemoveHandler; export interface EventIteratorOptions { highWaterMark: number | undefined; lowWaterMark: number | undefined; } export interface Queue { push(value: T): void; stop(): void; fail(error: Error): void; on(event: E, fn: EventHandlers[E]): void; } interface EventHandlers { highWater(): void; lowWater(): void; } export declare class EventIterator implements AsyncIterable { [Symbol.asyncIterator]: () => AsyncIterator; constructor(listen: ListenHandler, { highWaterMark, lowWaterMark }?: Partial); } export default EventIterator;