type Listener = (...args: any[]) => void; interface EventEmitterLike { on(event: string, listener: Listener): this; removeListener(event: string, listener: Listener): this; } /** * Minimal readable-stream shape consumed by {@link iterateStream}. * Intentionally structural so it matches Node `Readable`, zip entry streams, * object-mode streams that yield zip entries, and any third-party emitter * that raises `data`/`end`/`error`. */ export interface IterableStreamLike extends EventEmitterLike { resume(): void; pause(): void; on(event: "data", listener: (chunk: T) => void): this; on(event: "end", listener: () => void): this; on(event: "error", listener: (err: Error) => void): this; } declare function iterateStream(stream: IterableStreamLike): AsyncGenerator; export { iterateStream };