///
import type * as stream from 'stream';
import type { AsyncIterableIteratorReturn } from './type';
/**
* Writes a value of type `Iterable` to a writable stream object.
* Inspired by the `stream.pipeline()` module method in Node.js v13.10.0 and later (which adds support for async generators).
*/
export declare function writeFromIterableToStream(iterable: Iterable | AsyncIterable, stream: TStream): TStream;
export interface StreamReaderInterface {
read: (size: number, offset?: number) => Promise;
readIterator: (size: number, offset?: number) => AsyncIterable<{
data?: T | undefined;
requestedSize: number;
offset: number;
readedSize: number;
}>;
seek: (offset: number) => Promise;
isEnd: () => Promise;
}
export declare class StreamReader implements StreamReaderInterface {
private readonly source;
private readonly convertChunk;
private iterator;
private readonly bufferList;
constructor(source: Iterable | AsyncIterable, convertChunk?: (chunk: unknown) => Buffer);
read(size: number, offset?: number): Promise;
readIterator(size: number, offset?: number): AsyncIterableIteratorReturn<{
data?: Buffer;
requestedSize: number;
offset: number;
readedSize: number;
}, void>;
seek(offset: number): Promise;
isEnd(): Promise;
private tryReadChunk;
private readNewChunks;
private splitBuffer;
private toAsyncIterator;
}