import { Annotation } from './annotation.abstract';
import { CustomAttributeAnnotation } from './custom-attribute-annotation';
import { NodeAnnotationTypeEnum } from './node-annotation.abstract';
import { CustomClassAnnotation } from './custom-class-annotation';
import { CustomStyleAnnotation } from './custom-style-annotation';
import { VegaInlineHtmlSchema } from '../../interface';
/**
 * Inline HTML annotation
 */
export declare class InlineHtmlAnnotation extends Annotation {
  readonly type: NodeAnnotationTypeEnum.INLINE_HTML;
  htmlTag: string;
  child?: InlineHtmlAnnotation;
  customAttribute?: CustomAttributeAnnotation;
  customClass?: CustomClassAnnotation;
  customStyle?: CustomStyleAnnotation;
  /**
   * Shared identifier assigned to all text nodes that belong to the same outer
   * inline-HTML wrapper at a given nesting depth.  Used at render time by
   * {@link RTETextBlock.renderGroupedNodesAtDepth} to re-merge adjacent siblings back
   * into a single wrapper element, reversing the flattening introduced during
   * parsing.
   */
  groupId?: string;
  constructor(htmlTag: string);
  /**
   * Generate the map item for the annotation
   *
   * @param {VegaInlineHtmlSchema} inlineHtml - Inline HTML node
   * @returns {[NodeAnnotationTypeEnum.INLINE_HTML, InlineHtmlAnnotation]} Map item for the annotation
   */
  static from(inlineHtml: VegaInlineHtmlSchema): [NodeAnnotationTypeEnum.INLINE_HTML, InlineHtmlAnnotation];
  /**
   * Create a new inline HTML annotation
   *
   * @returns {InlineHtmlAnnotation} - Inline HTML annotation
   */
  clone(): InlineHtmlAnnotation;
  /**
   * Build the props object used when rendering this annotation.
   *
   * @returns {Record<string, unknown>} Props for h(tag, props, children).
   */
  renderProps(): Record<string, unknown>;
  /**
   * Generate the JSON representation of the annotation
   *
   * @returns {Record<string, unknown>} JSON representation of the annotation
   */
  toJSON(): Record<string, unknown>;
}
