export interface Command { do(): void; undo(): void; } export declare class CommandHistory { private readonly maxSize; private readonly onChange?; private undoStack; private redoStack; constructor(maxSize?: number, onChange?: () => void); get canUndo(): boolean; get canRedo(): boolean; execute(command: Command): void; undo(): boolean; redo(): boolean; clear(): void; }