import { AnnotationStyle, 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 LinkFilterStylesStrategy is responsible for filtering link styles from text nodes that are annotated as links.
 */
export declare class LinkFilterStylesStrategy extends RTEFilterStylesStrategy {
  protected stylesToBeFiltered: RTEFilterStyles;
  protected elementTagName: string;
  /**
   * Filter default link styles from `link.customStyle` in annotations.
   *
   * @param {VegaRTEAnnotations} annotations - The annotations to filter.
   * @returns {VegaRTEAnnotations} The same annotations reference with link.customStyle cleaned up.
   */
  filterAnnotations(annotations: VegaRTEAnnotations): VegaRTEAnnotations;
  /**
   * @inheritDoc
   */
  canFilter(blockOrNodeInstance: RTEBlock | RTENode): boolean;
  /**
   * @inheritDoc
   */
  canRefill(blockOrNodeClassName: string, element: HTMLElement): boolean;
  /**
   * @inheritDoc
   */
  toCssText(): string;
  /**
   * Filters the inline styles for a link group annotation and updates the attributes accordingly.
   *
   * @param {Record<string, string | AnnotationStyle>} attributes The attributes of the link group annotation.
   * @returns {Record<string, string | AnnotationStyle>} The updated attributes after filtering.
   */
  filterLinkGroupInlineStyles(attributes: Record<string, string | AnnotationStyle>): Record<string, string | AnnotationStyle>;
}
