import { AnnotationGeneratorStrategyAbstract } from './annotation-generator-strategy.abstract';
import { HtmlElementToAnnotationGenerateOptions, RTEDtoClassPrototype } from './html-element-to-annotation-generator';
import { VegaRTEAnnotations } from '../../../../../interface';
/**
 * Handle inline html annotation
 */
export declare class InlineHtmlAnnotationHandler extends AnnotationGeneratorStrategyAbstract {
  private customAttributeHandler;
  private customStyleAnnotationHandler;
  private customClassAnnotationHandler;
  /**
   * @inheritDoc
   */
  canHandle<T extends RTEDtoClassPrototype>(targetDto: T, options: HtmlElementToAnnotationGenerateOptions): boolean;
  /**
   * @inheritDoc
   */
  handle(element: HTMLElement, parentAnnotations?: VegaRTEAnnotations): VegaRTEAnnotations;
  /**
   * Generate inline html annotation.
   *
   * @param {HTMLElement} child - Current element.
   * @param {VegaRTETextAnnotations} annotations - Current annotations.
   * @returns {Nullable<VegaInlineHtmlSchema>} - Inline html annotation.
   */
  private generateInlineHtmlAnnotation;
  /**
   * Immutably appends `toAppend` at the correct position in the chain — the
   * deepest node whose `child.htmlTag` still matches `parentNode.nodeName`.
   * Each level is reconstructed via spread so the original chain is never mutated.
   *
   * @param {VegaInlineHtmlSchema} node - Current chain node.
   * @param {VegaInlineHtmlSchema} toAppend - Node to append at the tail.
   * @param {ParentNode | null} parentNode - DOM parent of the element being processed.
   * @returns {VegaInlineHtmlSchema} A new chain with `toAppend` inserted.
   */
  private appendToInlineHtmlChain;
}
