import { VegaRTETextAnnotations, VegaRTETextBlockType, VegaRTETextNode, VegaRTETransformOptions } from '../../../../interface';
import { ElementToDTOStrategy } from './element-to-dto-strategy.abstract';
/** Abstract class for block html element to RTE block dto */
export declare abstract class BlockToRTEBlockStrategyAbstract extends ElementToDTOStrategy {
  private annotationHandler;
  /**
   * Generate child nodes of block element, this will inherit all annotations from parent to text node and
   *   flat the child nodes.
   *
   * Example:
   *   <li>
   *     <u><i>text1</i></u>
   *     <span></span>
   *     <span style='font-weight: bold;'><span>text2</span></span>
   *     text3
   *   </li>
   * will tranform to:
   *   <li>
   *     <span>text1</span> // with underline and italic annotations
   *     <span></span>      // empty span
   *     <span>text2</span> // with bold annotations
   *     <span>text3</span> // no annotations
   *   </li>
   *
   * @param {HTMLElement[]} elements - Child elements.
   * @param {VegaRTETextAnnotations} annotations - Parent annotations.
   * @param {VegaRTETransformOptions} [options] - Options for transformation.
   * @returns {VegaRTETextNode[]} - Text node DTO.
   */
  protected generateChildNodes(elements: HTMLElement[], annotations?: VegaRTETextAnnotations, options?: VegaRTETransformOptions): VegaRTETextNode[];
  /**
   * Get the node type of element. The element type is determined in the following
   * order: "data-type" attribute, node name, font size and class name.
   *
   * @param {HTMLElement} element - element.
   * @returns {VegaRTETextBlockType} - Block type.
   */
  protected matchTextBlockType(element: HTMLElement): VegaRTETextBlockType;
}
