import { ActionHandlerExecution, ActionHandlerInterceptor } from '../../../dto/action-handle-strategies/action-handle-interceptor.abstract';
import { RemoveChildrenAction } from '../../../dto/actions/remove-child-action';
import type { RTETableCellBlock } from '../dto/table-cell-block';
import type { RTETableHeadCellBlock } from '../dto/table-head-cell-block';
/**
 * Interceptor to prevent removal of all children from a cell, ensuring at least one child remains.
 */
export declare class PreventCellChildrenRemoveInterceptor extends ActionHandlerInterceptor<RemoveChildrenAction, RTETableCellBlock | RTETableHeadCellBlock> {
  /**
   * Prevent removal if the target cell would be left empty after the action.
   *
   * @param {RemoveChildrenAction} action - the action to be intercepted
   * @param {RTETableCellBlock | RTETableHeadCellBlock} target - the target cell block
   * @returns {boolean} - true if the removal should be intercepted, false otherwise
   */
  canIntercept(action: RemoveChildrenAction, target: RTETableCellBlock | RTETableHeadCellBlock): boolean;
  /**
   * Add a new empty text node to the cell to prevent it from removal.
   *
   * @param {ActionHandlerExecution} _execution - the original execution function
   * @param {RemoveChildrenAction} action - the action to be intercepted
   * @param {RTETableCellBlock | RTETableHeadCellBlock} target - the target cell block
   */
  intercept(_execution: ActionHandlerExecution, action: RemoveChildrenAction, target: RTETableCellBlock | RTETableHeadCellBlock): void;
}
