/** * 批量更新队列 * 累积多个小更新,批量发送以减少网络开销 */ import type { Patch } from '../types.js'; export interface BatchQueueOptions { /** * 最大批量大小(字节) */ maxBatchSize?: number; /** * 最大等待时间(毫秒) */ maxWaitTime?: number; /** * 最大 patch 数量 */ maxPatchCount?: number; /** * 是否启用优先级 */ enablePriority?: boolean; } export interface QueuedUpdate { patches: Patch[]; timestamp: number; priority: number; size: number; } /** * 批量更新队列 */ export declare class BatchQueue { private queue; private options; private flushTimer; private onFlushCallback?; private stats; constructor(options?: BatchQueueOptions); /** * 注册刷新回调 */ onFlush(callback: (updates: QueuedUpdate[]) => void): void; /** * 添加更新到队列 */ enqueue(patches: Patch[], priority?: number): void; /** * 估算 patches 大小 */ private estimateSize; /** * 是否应该立即刷新 */ private shouldFlush; /** * 安排定时刷新 */ private scheduleFlush; /** * 刷新队列 */ flush(): void; /** * 强制刷新(同步) */ forceFlush(): void; /** * 清空队列 */ clear(): void; /** * 获取队列大小 */ size(): number; /** * 获取统计信息 */ getStats(): { queueSize: number; queuedPatches: number; totalEnqueued: number; totalFlushed: number; totalBatches: number; averageBatchSize: number; }; /** * 重置统计 */ resetStats(): void; /** * 合并 patches(去重和优化) */ static optimizePatches(patches: Patch[]): Patch[]; } //# sourceMappingURL=BatchQueue.d.ts.map