import { Nullable } from '../../../../../types/general';
import { RTEExtensionContext } from '../../../interface';
import { RTETableBlock } from '../dto/table-block';
import { SettingEventHandler } from './setting-event-handler.abstract';
import { RTENode } from '../../../dto/nodes/node.abstract';
/**
 * Event handler for row operations in a table.
 */
export declare class CaptionOperationEventHandler extends SettingEventHandler {
  /**
   * @inheritDoc
   */
  canHandle(action: Array<string>): boolean;
  /**
   * Toggle caption state for the target table block when the caption menu item is clicked.
   *
   * @param {Array<string>} action - Table setting payload, e.g. ['CAPTION', 'rte-table-caption'].
   * @param {RTEExtensionContext} _extensionContext - Current editor extension context (unused here).
   * @param {RTETableBlock} tableBlock - Table block that owns the caption.
   */
  execute(action: Array<string>, _extensionContext: RTEExtensionContext, tableBlock: RTETableBlock): void;
  /**
   * Applies a cursor update action so the editor focuses on the resolved node.
   *
   * @param {RTETableBlock} block - Table block currently being toggled.
   * @param {Nullable<RTENode>} focusNode - Target node that should receive the caret.
   */
  protected syncCursorPosition(block: RTETableBlock, focusNode: Nullable<RTENode>): void;
  /**
   * Build a fresh caption block with a default paragraph + placeholder text.
   *
   * @param {string} id - table-caption id
   * @returns {RTETableCaptionBlock} Newly created caption DTO ready for rendering.
   */
  private createCaptionBlock;
}
