import type { TransformCallback, TransformOptions, Transform as TransformT } from 'stream';
import type { OptionsInternal } from '../../types.js';
interface Iterator {
    forEach(fn: (entry: unknown) => void, options: {
        concurrency: number;
    }, callback: (err?: Error | null) => void): void;
    destroy(error?: Error | null): void;
}
type IteratorConstructor = new (stream: NodeJS.ReadWriteStream) => Iterator;
export default function createIteratorTransform(IteratorClass: IteratorConstructor): {
    new (options?: OptionsInternal | TransformOptions<TransformT>): {
        _iterator: Iterator | null;
        _callback: ((error?: Error | null) => void) | null;
        _stream: NodeJS.ReadWriteStream | null;
        _concurrency: number;
        _transform(chunk: unknown, encoding: BufferEncoding, callback: TransformCallback): void;
        _flush(callback: TransformCallback): void;
        destroy(error?: Error | null): /*elided*/ any;
        allowHalfOpen: boolean;
        addListener<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        addListener(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        emit<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, ...args: import("node:stream").DuplexEventMap[E]): boolean;
        emit(eventName: string | symbol, ...args: any[]): boolean;
        listenerCount<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener?: ((...args: import("node:stream").DuplexEventMap[E]) => void) | undefined): number;
        listenerCount(eventName: string | symbol, listener?: ((...args: any[]) => void) | undefined): number;
        listeners<E extends keyof import("node:stream").DuplexEventMap>(eventName: E): ((...args: import("node:stream").DuplexEventMap[E]) => void)[];
        listeners(eventName: string | symbol): ((...args: any[]) => void)[];
        off<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        off(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        on<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        on(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        once<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        once(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        prependListener<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        prependListener(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        prependOnceListener<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        rawListeners<E extends keyof import("node:stream").DuplexEventMap>(eventName: E): ((...args: import("node:stream").DuplexEventMap[E]) => void)[];
        rawListeners(eventName: string | symbol): ((...args: any[]) => void)[];
        removeAllListeners<E extends keyof import("node:stream").DuplexEventMap>(eventName?: E | undefined): /*elided*/ any;
        removeAllListeners(eventName?: string | symbol): /*elided*/ any;
        removeListener<E extends keyof import("node:stream").DuplexEventMap>(eventName: E, listener: (...args: import("node:stream").DuplexEventMap[E]) => void): /*elided*/ any;
        removeListener(eventName: string | symbol, listener: (...args: any[]) => void): /*elided*/ any;
        pipe<T extends NodeJS.WritableStream>(destination: T, options?: import("node:stream").PipeOptions): T;
        eventNames(): (string | symbol)[];
        getMaxListeners(): number;
        setMaxListeners(n: number): /*elided*/ any;
        [EventEmitter.captureRejectionSymbol]?(error: Error, event: string | symbol, ...args: any[]): void;
        readonly readableAborted: boolean;
        readable: boolean;
        readonly readableDidRead: boolean;
        readonly readableEncoding: BufferEncoding | null;
        readonly readableEnded: boolean;
        readableFlowing: boolean | null;
        readonly readableHighWaterMark: number;
        readonly readableLength: number;
        readonly readableObjectMode: boolean;
        destroyed: boolean;
        readonly closed: boolean;
        readonly errored: Error | null;
        _construct?(callback: (error?: Error | null) => void): void;
        _read(size: number): void;
        read(size?: number): any;
        setEncoding(encoding: BufferEncoding): /*elided*/ any;
        pause(): /*elided*/ any;
        resume(): /*elided*/ any;
        isPaused(): boolean;
        unpipe(destination?: NodeJS.WritableStream): /*elided*/ any;
        unshift(chunk: any, encoding?: BufferEncoding): void;
        wrap(stream: NodeJS.ReadableStream): /*elided*/ any;
        push(chunk: any, encoding?: BufferEncoding): boolean;
        compose(stream: NodeJS.WritableStream | import("node:stream/web").WritableStream | import("node:stream/web").TransformStream | ((source: any) => void), options?: import("node:events").Abortable): import("node:stream").Duplex;
        iterator(options?: import("node:stream").ReadableIteratorOptions): NodeJS.AsyncIterator<any>;
        map(fn: (data: any, options?: import("node:events").Abortable) => any, options?: import("node:stream").ReadableOperatorOptions): import("node:stream").Readable;
        filter(fn: (data: any, options?: import("node:events").Abortable) => boolean | Promise<boolean>, options?: import("node:stream").ReadableOperatorOptions): import("node:stream").Readable;
        forEach(fn: (data: any, options?: import("node:events").Abortable) => void | Promise<void>, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): Promise<void>;
        toArray(options?: import("node:events").Abortable): Promise<any[]>;
        some(fn: (data: any, options?: import("node:events").Abortable) => boolean | Promise<boolean>, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): Promise<boolean>;
        find<T>(fn: (data: any, options?: import("node:events").Abortable) => data is T, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): Promise<T | undefined>;
        find(fn: (data: any, options?: import("node:events").Abortable) => boolean | Promise<boolean>, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): Promise<any>;
        every(fn: (data: any, options?: import("node:events").Abortable) => boolean | Promise<boolean>, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): Promise<boolean>;
        flatMap(fn: (data: any, options?: import("node:events").Abortable) => any, options?: Pick<import("node:stream").ReadableOperatorOptions, "concurrency" | "signal">): import("node:stream").Readable;
        drop(limit: number, options?: import("node:events").Abortable): import("node:stream").Readable;
        take(limit: number, options?: import("node:events").Abortable): import("node:stream").Readable;
        reduce<T>(fn: (previous: any, data: any, options?: import("node:events").Abortable) => T): Promise<T>;
        reduce<T>(fn: (previous: T, data: any, options?: import("node:events").Abortable) => T, initial: T, options?: import("node:events").Abortable): Promise<T>;
        _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
        [Symbol.asyncIterator](): NodeJS.AsyncIterator<any>;
        [Symbol.asyncDispose](): Promise<void>;
        writable: boolean;
        readonly writableAborted: boolean;
        readonly writableEnded: boolean;
        readonly writableFinished: boolean;
        readonly writableHighWaterMark: number;
        readonly writableLength: number;
        readonly writableObjectMode: boolean;
        readonly writableCorked: number;
        readonly writableNeedDrain: boolean;
        _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
        _writev?(chunks: {
            chunk: any;
            encoding: BufferEncoding;
        }[], callback: (error?: Error | null) => void): void;
        _final(callback: (error?: Error | null) => void): void;
        write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean;
        write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean;
        setDefaultEncoding(encoding: BufferEncoding): /*elided*/ any;
        end(cb?: () => void): /*elided*/ any;
        end(chunk: any, cb?: () => void): /*elided*/ any;
        end(chunk: any, encoding: BufferEncoding, cb?: () => void): /*elided*/ any;
        cork(): void;
        uncork(): void;
    };
    from(src: NodeJS.ReadableStream | NodeJS.WritableStream | import("node:buffer").Blob | string | Iterable<any> | AsyncIterable<any> | ((source: AsyncIterable<any>) => AsyncIterable<any>) | ((source: AsyncIterable<any>) => Promise<void>) | Promise<any> | import("node:stream/web").ReadableWritablePair | import("node:stream/web").ReadableStream | import("node:stream/web").WritableStream): import("node:stream").Duplex;
    toWeb(streamDuplex: NodeJS.ReadWriteStream, options?: import("node:stream").DuplexToWebOptions): import("node:stream/web").ReadableWritablePair;
    fromWeb(duplexStream: import("node:stream/web").ReadableWritablePair, options?: Pick<import("node:stream").DuplexOptions, "allowHalfOpen" | "decodeStrings" | "encoding" | "highWaterMark" | "objectMode" | "signal">): import("node:stream").Duplex;
    promises: typeof import("node:stream/promises");
    Stream: typeof import("node:stream");
    duplexPair(options?: import("node:stream").DuplexOptions): [import("node:stream").Duplex, import("node:stream").Duplex];
    addAbortSignal<T extends NodeJS.ReadableStream | NodeJS.WritableStream | import("node:stream/web").ReadableStream | import("node:stream/web").WritableStream>(signal: AbortSignal, stream: T): T;
    getDefaultHighWaterMark(objectMode: boolean): number;
    setDefaultHighWaterMark(objectMode: boolean, value: number): void;
    finished: typeof import("node:stream").finished;
    pipeline: typeof import("node:stream").pipeline;
    compose(stream: import("node:stream").ComposeSource<any> | import("node:stream").ComposeDestination<any>): import("node:stream").Duplex;
    compose<S extends import("node:stream").ComposeSource<any> | import("node:stream").ComposeTransform<any, any>, D extends import("node:stream").ComposeTransform<S, any> | import("node:stream").ComposeDestination<S>>(source: S, destination: D): import("node:stream").Duplex;
    compose<S extends import("node:stream").ComposeSource<any> | import("node:stream").ComposeTransform<any, any>, T extends import("node:stream").ComposeTransform<S, any>, D extends import("node:stream").ComposeTransform<T, any> | import("node:stream").ComposeDestination<T>>(source: S, transform: T, destination: D): import("node:stream").Duplex;
    compose<S extends import("node:stream").ComposeSource<any> | import("node:stream").ComposeTransform<any, any>, T1 extends import("node:stream").ComposeTransform<S, any>, T2 extends import("node:stream").ComposeTransform<T1, any>, D extends import("node:stream").ComposeTransform<T2, any> | import("node:stream").ComposeDestination<T2>>(source: S, transform1: T1, transform2: T2, destination: D): import("node:stream").Duplex;
    compose<S extends import("node:stream").ComposeSource<any> | import("node:stream").ComposeTransform<any, any>, T1 extends import("node:stream").ComposeTransform<S, any>, T2 extends import("node:stream").ComposeTransform<T1, any>, T3 extends import("node:stream").ComposeTransform<T2, any>, D extends import("node:stream").ComposeTransform<T3, any> | import("node:stream").ComposeDestination<T3>>(source: S, transform1: T1, transform2: T2, transform3: T3, destination: D): import("node:stream").Duplex;
    compose<S extends import("node:stream").ComposeSource<any> | import("node:stream").ComposeTransform<any, any>, T1 extends import("node:stream").ComposeTransform<S, any>, T2 extends import("node:stream").ComposeTransform<T1, any>, T3 extends import("node:stream").ComposeTransform<T2, any>, T4 extends import("node:stream").ComposeTransform<T3, any>, D extends import("node:stream").ComposeTransform<T4, any> | import("node:stream").ComposeDestination<T4>>(source: S, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: D): import("node:stream").Duplex;
    compose(...streams: [import("node:stream").ComposeSource<any>, ...import("node:stream").ComposeTransform<any, any>[], import("node:stream").ComposeDestination<any>]): import("node:stream").Duplex;
    isErrored(stream: NodeJS.ReadableStream | NodeJS.WritableStream | import("node:stream/web").ReadableStream | import("node:stream/web").WritableStream): boolean;
    isReadable(stream: NodeJS.ReadableStream | import("node:stream/web").ReadableStream): boolean | null;
    isWritable(stream: NodeJS.WritableStream | import("node:stream/web").WritableStream): boolean | null;
    Readable: typeof import("node:stream").Readable;
    Writable: typeof import("node:stream").Writable;
    Duplex: typeof import("node:stream").Duplex;
    Transform: typeof TransformT;
    PassThrough: typeof import("node:stream").PassThrough;
    EventEmitter: typeof import("node:events");
    addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable;
    getEventListeners(emitter: import("node:events"), name: string | symbol): ((...args: any[]) => void)[];
    getEventListeners(emitter: EventTarget, name: string): ((...args: any[]) => void)[];
    getMaxListeners(emitter: import("node:events") | EventTarget): number;
    listenerCount(emitter: import("node:events"), eventName: string | symbol): number;
    listenerCount(emitter: EventTarget, eventName: string): number;
    on(emitter: import("node:events"), eventName: string | symbol, options?: import("node:events").OnOptions): NodeJS.AsyncIterator<any[]>;
    on(emitter: EventTarget, eventName: string, options?: import("node:events").OnOptions): NodeJS.AsyncIterator<any[]>;
    once(emitter: import("node:events"), eventName: string | symbol, options?: import("node:events").OnceOptions): Promise<any[]>;
    once(emitter: EventTarget, eventName: string, options?: import("node:events").OnceOptions): Promise<any[]>;
    setMaxListeners(n: number, ...eventTargets: ReadonlyArray<import("node:events") | EventTarget>): void;
    readonly captureRejectionSymbol: typeof import("node:events").captureRejectionSymbol;
    captureRejections: boolean;
    defaultMaxListeners: number;
    readonly errorMonitor: typeof import("node:events").errorMonitor;
    EventEmitterAsyncResource: typeof import("node:events").EventEmitterAsyncResource;
};
export {};
