import { Package } from "./Package"; import { MultiSendFunction } from "./Utils"; export interface PackageBufferOptions { maxBufferSize: number; maxBufferChunkLength: number; limitBatchStringLength: number; limitBatchBinarySize: number; stringSizeDeterminer: (str: string) => number; } export default class PackageBuffer { send: MultiSendFunction; isOpen: () => boolean; options: PackageBufferOptions; constructor(send: MultiSendFunction, isOpen?: () => boolean, options?: PackageBufferOptions); private _buffer; private _bufferSize; private _bufferTimeoutDelay; private _bufferTimeoutTicker; private _bufferTimeoutTimestamp; static readonly DEFAULT_OPTIONS: Readonly; static buildOptions(options: Partial): PackageBufferOptions; getBufferLength(): number; getBufferSize(): number; clearBuffer(): void; private _onBatchTimeout; private _addPackageSize; add(pack: Package, batch?: number | true): void; tryRemove(pack: Package): boolean; private _pushToBuffer; private _setBatchTime; private _clearBufferTimeout; private _setBufferTimeout; clearBatchTime(): void; flushBuffer(): boolean; private _flushBuffer; private _internalFlushBuffer; private _sendBufferChunk; private _batchCompress; private _createBinaryContentBatches; private static _createBinaryContentBatch; }