import type { RTEBlock } from '../../../dto/blocks/block.abstract';
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
import type { RTETableCellBlock } from '../dto/table-cell-block';
import type { RTETableHeadCellBlock } from '../dto/table-head-cell-block';
import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
import { AnnotationAction } from '../../../dto/actions/annotation-action.abstract';
import { RTETableRowBlock } from '../dto/table-row-block';
/**
 * Abstract base strategy for handling table column operations.
 * Provides common functionality for all column-related strategies.
 */
export declare abstract class TableColumnStrategy<TAction extends ModifyContentAction | AnnotationAction> extends ActionHandleStrategy<TAction, RTEBlock> {
  /**
   * Finds the index range of cells within a table row.
   * Returns the start and end indices of the given cell range.
   *
   * @param {(RTETableCellBlock | RTETableHeadCellBlock)[]} cellRange - The range of table cells to find indices for.
   * @param {RTETableRowBlock[]} allTableRows - All table rows.
   * @param {string[][]} grid - The 2D grid representation of the table
   * @returns {[number, number]} A tuple containing the start and end indices.
   */
  protected getBoundaryCellColumnRange(cellRange: (RTETableCellBlock | RTETableHeadCellBlock)[], allTableRows: RTETableRowBlock[], grid: string[][]): [number, number];
}
