import { RTETablePropertiesType } from '../../../interface';
import type { RTETableExtensionContext } from '../table-extension';
import { RTETableBlock } from '../dto/table-block';
import { Nullable } from '../../../../../types/general';
import { RTENode } from '../../../dto/nodes/node.abstract';
/**
 * Event handler for row operations in a table.
 */
export declare abstract class TablePropertiesEventHandler {
  /**
   * Generate form object from table block
   *
   * @param {RTETableBlock} tableBlock - The table block
   * @returns {RTETablePropertiesType} The generated form object
   */
  static generateTablePropertiesForm(tableBlock: RTETableBlock): RTETablePropertiesType;
  /**
   * Update the rich text editor cursor position
   *
   * @param {RTETableExtensionContext} extensionContext - The table extension context.
   * @param {Nullable<RTENode>} focusNode - The node to focus on.
   */
  protected updateCursorPosition(extensionContext: RTETableExtensionContext, focusNode: Nullable<RTENode>): void;
  /**
   * Handle the event
   *
   * @param {RTETableExtensionContext} context - The table extension context.
   * @param {RTETableBlock} tableBlock - The table block that owns the properties.
   * @param {RTETablePropertiesType} data - The table properties data.
   * @param {RTENode} focusNode - The table properties data.
   */
  abstract handle(context: RTETableExtensionContext, tableBlock: RTETableBlock, data: RTETablePropertiesType, focusNode?: RTENode): void;
}
