import { Nullable } from '../../../../../../types/general';
import { RTEBlock } from '../../../../dto/blocks/block.abstract';
import { RTEFilterStyles, RTEFilterStylesStrategy } from '../../../../dto/filter-styles-strategies/filter-styles-strategy.abstract';
import { RTENode } from '../../../../dto/nodes/node.abstract';
import { RTEFilterInlineStylesResult } from '../../../../interface';
/**
 * A strategy defines how to filter and refill styles for table cell elements.
 */
export declare class TableCellFilterStylesStrategy extends RTEFilterStylesStrategy {
  protected stylesToBeFiltered: RTEFilterStyles;
  protected elementTagName: string;
  private stylesWithRGBColor;
  private cellBlockClassName;
  constructor(cellType?: 'td' | 'th');
  /**
   * @inheritDoc
   */
  canFilter(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * The table cell border color can be represented in different formats (e.g., hex, rgb), so we need to ensure that we can handle both cases.
   *
   * @inheritDoc
   */
  filterAndDeleteStyles(fullStyles: Nullable<RTEFilterStyles>, classNames: Nullable<string[]>): RTEFilterInlineStylesResult;
  /**
   * @inheritDoc
   */
  canRefill(blockOrNodeClassName: string, element: HTMLElement): boolean;
  /**
   * @inheritDoc
   */
  toCssText(): string;
  /**
   * Checks if the given class name corresponds to a table cell block.
   *
   * @param {string} className - The class name to check.
   * @returns {boolean} - True if it's a table cell block, false otherwise.
   */
  private isTableCell;
  /**
   * Converts the default border color from RGB to HEX if necessary.
   *
   * @param {Nullable<RTEFilterStyles>} styles - The styles object to be modified.
   */
  private convertDefaultBorderColorFromRGBToHex;
}
