import { StreamCloseCode } from "./StreamCloseCode"; import { StreamState } from "./StreamState"; import Transport from "../Transport"; import { DataType } from "../DataType"; interface ReadStreamOptions { bufferSize?: number; chunkTimeout?: number | null; sizeLimit?: number | null; } export declare type ChunkMiddleware = (chunk: any, updateChunk: (chunk: T) => void, type: DataType) => boolean | Promise; export default class ReadStream { readonly id: number; readonly state: StreamState; readonly accepted: boolean; private readPromise; private readResolve; set sizeLimit(sizeLimit: number | null); private _sizeLimit?; private _buffer; private _bufferSizeLimit; private _allowedSize; private _processedSize; private _receivedSize; private _chainEnd; private _chainCancel; private _chain; private _chainChunkSize; private readonly _createdBadConnectionStamp; private _chunkTimeoutActive; private _chunkTimeout; private _chunkTimeoutTick; private _allowMoreMinTimeout; set chunkMiddleware(middleware: ChunkMiddleware | undefined); private _chunkMiddleware?; private _closedPromiseResolve; readonly closed: Promise; private _openedPromiseResolve; readonly opened: Promise; readonly closeCode?: StreamCloseCode | number; private readonly _transport; constructor(id: number, transport: Transport); get binary(): boolean; get object(): boolean; get closedSuccessfully(): boolean; accept({ sizeLimit, bufferSize, chunkTimeout }?: ReadStreamOptions): void; close(closeCode: StreamCloseCode | number): void; private _checkAllowMore; [Symbol.asyncIterator](): AsyncGenerator; read(): Promise; readAll(): Promise; private _setChunkTimeout; private _emptyChunksCheck; private _clearChunkTimeout; private _chainNextChunk; private _processChunk; private _processChainEnd; private _cancelChunkChain; } export {};