wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
32 lines • 1.19 kB
TypeScript
/**
* State change handling utilities for playback module
*/
/**
* Creates a state change handler that tracks before/after states
*/
export declare function createStateChangeHandler<T>(getCurrentState: () => T, onStateChange: (prevState: T, newState: T) => void): (updateFn: () => void) => void;
/**
* Creates a batch state change handler that accumulates changes
*/
export declare function createBatchStateHandler<T>(getCurrentState: () => T, onBatchComplete: (changes: T[]) => void): {
addChange: (updateFn: () => void) => void;
flush: () => void;
};
/**
* State comparison utilities
*/
export declare const StateComparison: {
/**
* Check if two states are equal (shallow comparison)
*/
areEqual<T extends Record<string, unknown>>(a: T, b: T): boolean;
/**
* Get changed properties between two states
*/
getChangedProperties<T extends Record<string, unknown>>(prevState: T, newState: T): Partial<T>;
/**
* Check if specific properties changed
*/
hasPropertiesChanged<T extends Record<string, unknown>>(prevState: T, newState: T, properties: (keyof T)[]): boolean;
};
//# sourceMappingURL=state-change-handler.d.ts.map