import { KeyboardManagerSlimmer } from './keyboard-manager-slimmer';
/**
 * An abstract class that manages the history of component values.
 */
export declare abstract class ComponentValueHistoryControllerSlimmer<T> extends KeyboardManagerSlimmer {
  protected redoStack: T[];
  protected undoStack: T[];
  private readonly registerHistoryDelay;
  private readonly registerHistoryDebounced;
  constructor();
  /**
   * Registers history based on the editor state.
   *
   * @typedef T generic type parameter
   * @param {T} editorState - The state to record in history.
   * @param {boolean} [isForce] - If true, the history will be registered immediately without debounce.
   */
  registerHistory(editorState: T, isForce?: boolean): void;
  /**
   * Internal function to register history immediately.
   *
   * @typedef T generic type parameter
   * @param {T} state - The state to record in history.
   */
  private internalRegisterHistory;
  /**
   * Returns the keyboard shortcut options for undo/redo functionality.
   *
   * @returns {KeyboardEventListener[]} - An array of keyboard shortcut options.
   */
  private getKeyboardShortcutOptions;
  /**
   * Restores the previous state from the undo stack.
   */
  abstract undo(): Promise<void>;
  /**
   * Restores the next state from the redo stack.
   */
  abstract redo(): Promise<void>;
  /**
   * Get the effective target elements for the component value history.
   */
  protected abstract getEffectiveTargets(): HTMLElement[];
  /**
   * Get the ineffective target elements for the component value history.
   */
  protected abstract getIneffectiveTargets(): HTMLElement[];
}
