import { ComponentValueHistoryControllerSlimmer } from '../../../../helpers/slimmers/component-value-history-controller-slimmer.abstract';
import { VegaCodeBlock } from '../../vega-code-block';
import { VegaCodeBlockValue } from '../../types';
export declare type CodeBlockState = {
  value: VegaCodeBlockValue;
  offset: number;
};
/**
 * The class used to control the code block history.
 * It extends the ComponentValueHistoryControllerSlimmer to manage the history of code block states.
 */
export declare class VegaCodeBlockHistoryController extends ComponentValueHistoryControllerSlimmer<CodeBlockState> {
  protected contentRenderer: VegaCodeBlock['contentRenderer'];
  protected value: VegaCodeBlock['value'];
  protected valueController: VegaCodeBlock['valueController'];
  protected selectionController: VegaCodeBlock['selectionController'];
  /**
   * Invoke the method to back up the current code block state.
   */
  undo(): Promise<void>;
  /**
   * Invoke the redo action to restore the last undone state.
   */
  redo(): Promise<void>;
  /**
   * Set the initial state of the code block history when the component is loaded.
   */
  protected initialHistory(): void;
  /**
   * Get the effective target elements for the code block history.
   *
   * @returns {HTMLElement[]} - An array of effective target elements.
   */
  protected getEffectiveTargets: () => HTMLElement[];
  /**
   * Get the ineffective target elements for the code block history.
   *
   * @returns { HTMLElement[]} - An empty array, as there are no ineffective targets for the code block.
   */
  protected getIneffectiveTargets(): HTMLElement[];
  /**
   * Restore the state of the code block from the given state.
   *
   * @param {CodeBlockState} state - The state to restore.
   */
  private restoreState;
}
