import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
import { MergeCellsAction } from '../actions/merge-cells-action';
import { RTETableBlock } from '../dto/table-block';
/**
 * Strategy to handle the merging of table cells.
 */
export declare class MergeCellsStrategy extends ActionHandleStrategy<MergeCellsAction, RTETableBlock> {
  /**
   * Handles the merge cells action.
   *
   * @param {MergeCellsAction} action - The action containing merge details.
   * @param {RTETableBlock} target - The target table block.
   */
  protected handleAction(action: MergeCellsAction, target: RTETableBlock): void;
  /**
   * Merge content from all selected cells to the target cell.
   *
   * @param {RTETableCellBlock | RTETableHeadCellBlock} targetCell - The target cell.
   * @param {RTETableCellBlock[] | RTETableHeadCellBlock[]} selectedCells - All selected cells.
   */
  private mergeContentToTargetCell;
  /**
   * Delete all selected cells except the target cell.
   *
   * @param {RTETableCellBlock[] | RTETableHeadCellBlock[]} selectedCells - All selected cells.
   * @param {RTETableCellBlock | RTETableHeadCellBlock} targetCell - The target cell (should not be deleted).
   */
  private deleteOtherSelectedCells;
  /**
   * Remove rowSpan from all cells in the target row when every cell shares the same rowSpan.
   * This avoids keeping stale row spans after a merge operation that no longer spans rows.
   *
   * @param {RTETableCellBlock | RTETableHeadCellBlock} targetCell - The target cell to set attributes on.
   * @param {RTETableBlock} table - The table block.
   * @param {number} targetCellRowSpan - The target cell rowSpan.
   */
  private clearRowSpanIfUniformAcrossRow;
}
