import { VegaRTEAnnotations } from '../../../interface';
import type { RTEBlock } from '../../blocks/block.abstract';
import type { RTENode } from '../../nodes/node.abstract';
import { RTEFilterStyles, RTEFilterStylesStrategy } from '../filter-styles-strategy.abstract';
/**
 * The CodeFilterStylesStrategy is responsible for filtering code styles from text nodes that are annotated as code.
 */
export declare class CodeFilterStylesStrategy extends RTEFilterStylesStrategy {
  protected stylesToBeFiltered: RTEFilterStyles;
  protected elementTagName: string;
  /**
   * Only strips code-default styles when the `code` annotation is present,
   * so that a user-applied `fontFamily: 'Roboto Mono'` without code is preserved.
   *
   * @param {VegaRTEAnnotations} annotations - The annotations object (mutated in place).
   * @returns {VegaRTEAnnotations} The same annotations reference.
   */
  filterAnnotations(annotations: VegaRTEAnnotations): VegaRTEAnnotations;
  /**
   * Determines whether the dto instance is a code text node.
   *
   * @param {RTEBlock | RTENode} blockOrNodeInstance - The block or node instance to check.
   * @returns {boolean} - True if the instance is a code text node, false otherwise.
   */
  canFilter(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * Check if the node is a text node and it is a code node.
   *
   * @param {string} blockOrNodeClassName - The class name of the block or node instance to check.
   * @param {HTMLElement} element - The HTML element of the node instance.
   * @returns {boolean} True if the node is a text node it a code element.
   */
  canRefill(blockOrNodeClassName: string, element: HTMLElement): boolean;
  /**
   * The code style in title and heading no need to be bold in default.
   *
   * @returns {string} The CSS text string for code styles.
   */
  toCssText(): string;
}
