interface Command extends CommandHistory { mustExec: boolean; overwriteIfSameType?: boolean; keepUndo?: boolean; } interface CommandHistory { cmd: Function; undo: Function; post: Function; type: number; } export declare class HistoryManager { commandHistory: CommandHistory[] | null; locked: boolean; maxSize: number; position: number; constructor(maxSize?: number); /** * @typedef {Object} addOptions * @property {function} cmd * @property {function} undo * @property {function} [post] * @property {boolean} mustExec * @property {number} type * @property {boolean} overwriteIfSameType * @property {boolean} keepUndo */ /** * Add a new couple of commands to be used in case of redo/undo. * @param {addOptions} options */ add({ cmd, undo, post, mustExec, type, overwriteIfSameType, keepUndo }: Command): void; /** * Undo the last command. */ undo(): void; /** * Redo the last command. */ redo(): void; /** * Check if there is something to undo. * @returns {boolean} */ hasSomethingToUndo(): boolean; /** * Check if there is something to redo. * @returns {boolean} */ hasSomethingToRedo(): boolean; cleanType(type: number): void; destroy(): void; reset(): void; } export {};