import { RTETableBlock } from '../dto/table-block';
import { TablePopoverBaseRenderer } from './table-popover-base-renderer';
import { RTERenderContext } from '../../../interface';
/**
 * Shared popover renderer for table settings.
 */
export declare class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
  private popoverRef;
  private tableSettingRef;
  private tableBlock;
  private tableDynamicPopover;
  private popoverContainer;
  private settingHandlers;
  constructor(renderContext: RTERenderContext);
  /**
   * Destroys the dynamic popover renderer and removes the container from the DOM.
   */
  destroy(): void;
  /**
   * Re-targets and shows the table setting popover for the clicked table.
   *
   * @param {MouseEvent} event - The MouseEvent that triggered the click.
   * @param {RTETableBlock} tableBlock - The clicked table's block data.
   * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
   */
  handleTableClick: (event: MouseEvent, tableBlock: RTETableBlock, getTableRef: () => HTMLElement) => void;
  /**
   * Sync the selected cells from the table selection to the table setting component.
   */
  syncSelectedCells: () => void;
  /**
   * Builds the popover DOM and appends it to the RTE host. Idempotent: subsequent calls are no-ops.
   */
  render(): void;
  /**
   * Updates the table setting component caption state to match the current table data.
   */
  private updateTableSettingCaption;
  /**
   * Re-targets the shared popovers to the given table.
   *
   * @param {RTETableBlock} tableBlock - The clicked table's block data.
   * @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
   */
  private reTarget;
  /**
   * Handles setting menu click events.
   *
   * @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
   */
  private handleSettingMenuClick;
  /**
   * Handles the popover show event to sync the selected table cells to the table setting component.
   */
  private handleTableSettingPopoverShow;
  /**
   * Collects and returns the currently selected table cells.
   *
   * @returns {RTETableCellBlock[]} The array of currently selected table cell blocks.
   */
  private getTableSelectedCells;
}
