wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
27 lines • 801 B
TypeScript
/**
* Set-based operations for managing collections (e.g., file visibility)
*/
/**
* Generic set manager for handling add/remove/toggle operations
*/
export declare class SetManager<T> {
private set;
private onUpdate;
constructor(initialSet?: Set<T>, onUpdate?: (set: Set<T>) => void);
add(item: T): void;
remove(item: T): void;
toggle(item: T): boolean;
has(item: T): boolean;
clear(): void;
sync(items: T[]): void;
get size(): number;
get values(): Set<T>;
}
/**
* Create a set manager with automatic state synchronization
*/
export declare function createSyncedSetManager<T>(getSet: () => Set<T>, updateState: (updates: {
visibleFileIds?: Set<T>;
totalFiles?: number;
}) => void): SetManager<T>;
//# sourceMappingURL=set-operations.d.ts.map