import { Stream } from '@libp2p/interface'; interface StreamWriterOptions { /** 分块大小(默认1MB) */ chunkSize?: number; /** 背压缓冲区最大值(默认5MB) */ bufferSize?: number; /** 失败重试次数(默认3次) */ retries?: number; } declare class StreamWriter { private stream; private options; private p; private bytesWritten; private abortController; private backpressureHistory; private isBackpressure; private writeQueue; private isProcessingQueue; private lastBackpressureCheck; private bytesDrained; private lastDrainEventAt; private watchdogTimer; private stallStartAt; private lastBytesDrainedSeen; private lastBpWarnAt; private isHandlingError; /** drain 事件驱动等待者,替代 flush() 中的 setInterval 轮询 */ private drainWaiters; private log?; constructor(stream: Stream, options?: StreamWriterOptions); get queueSize(): number; private getAverageQueueSize; private handleError; private startPipeline; private pipeToStream; private createTransform; private startWatchdog; write(data: ArrayBuffer | Uint8Array | Blob | string): Promise; private convertToBuffer; private writeChunks; private retryableWrite; private monitorBackpressure; private calculateRetryDelay; private processQueue; private updateProgress; end(): Promise; abort(reason?: string): void; private cleanup; flush(timeoutMs?: number): Promise; private listeners; addEventListener(type: string, callback: (event: CustomEvent) => void): void; private dispatchEvent; private dispatchBackpressureEvent; } export { StreamWriter };