import { IDisposable } from './disposable'; import { EventQueue } from './event'; import type { Readable } from 'stream'; export interface IReadableStream { on(event: 'data', listener: (chunk: T) => void): this; on(event: 'end', listener: () => void): this; on(event: 'error', listener: (err: E) => void): this; on(event: string, listener: (...args: any[]) => void): this; } export declare function isReadableStream(stream: any): stream is Readable; export interface IListenReadableOptions { onData(data: T): void; onEnd(): void; onError?(error: E): void; } export declare function listenReadable(stream: IReadableStream, options: IListenReadableOptions): void; export declare function listenGroupReadable(streams: IReadableStream[], options: IListenReadableOptions): void; export declare class SumiReadableStream implements IReadableStream { protected dataQueue: EventQueue; protected endQueue: EventQueue; protected errorQueue: EventQueue; on(event: 'error', listener: (err: E) => void): this; on(event: 'data', listener: (chunk: T) => void): this; on(event: 'end', listener: () => void): this; on(event: string, listener: (...args: any[]) => void): this; onData(cb: (data: T) => void): IDisposable; onEnd(cb: () => void): IDisposable; onError(cb: (err: E) => void): IDisposable; emitData(buffer: T): void; emitError(err: E): void; end(): void; abort(): void; } //# sourceMappingURL=stream.d.ts.map