/** * TrackedMap - 自动追踪变化的 Map 集合 * 类似 Colyseus 的 MapSchema */ import type { Patch } from '../types.js'; export interface ChangeCallback { (patches: Patch[]): void; } /** * TrackedMap - 自动追踪所有修改操作的 Map * * @example * ```typescript * const players = new TrackedMap(); * * players.onChange((patches) => { * console.log('Changes:', patches); * }); * * players.set('p1', new Player()); // 触发 onChange * ``` */ export declare class TrackedMap extends Map { private basePath; private changeCallbacks; private pendingChanges; private tracking; constructor(basePath?: string, entries?: readonly (readonly [K, V])[] | null); /** * 开始追踪变化 */ startTracking(): void; /** * 停止追踪变化 */ stopTracking(): void; /** * 注册变化回调 */ onChange(callback: ChangeCallback): () => void; /** * 记录变化 */ private recordChange; /** * 触发变化回调 */ private emitChanges; /** * 获取待处理的变化 */ getChanges(): Patch[]; /** * 清除待处理的变化 */ clearChanges(): void; set(key: K, value: V): this; delete(key: K): boolean; clear(): void; /** * 批量更新(不触发中间变化) */ batch(fn: () => void): void; /** * 克隆 */ clone(): TrackedMap; /** * 转换为普通对象 */ toJSON(): Record; /** * 从普通对象创建 */ static fromJSON(obj: Record, basePath?: string): TrackedMap; } //# sourceMappingURL=TrackedMap.d.ts.map