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