import { VegaRTEBaseNode, VegaRTECodeBlock, VegaRTETransformOptions } from '../../interface';
import { AnnotationAction } from '../actions/annotation-action.abstract';
import { ModifyContentAction } from '../actions/modify-content-action.abstract';
import { RTECodeBlock } from '../blocks/code-block';
import { NodeTypeEnum } from './node.abstract';
import { InternalAnnotationTypeEnum } from '../annotations/annotation.abstract';
import { SelectionRangeAnnotation } from '../annotations/selection-range-annotation';
import { RTEDecoratorNode } from './decorator-node';
import { CustomStyleAnnotation } from '../annotations/custom-style-annotation';
import { CommonAnnotationTypeEnum } from '../annotations/common-annotation.abstract';
declare type VegaRTECodeNode = VegaRTEBaseNode & {
  text: string;
  language?: VegaRTECodeBlock['language'];
};
declare type CodeBlockNodeAnnotationKey = InternalAnnotationTypeEnum.SELECTION_RANGE | CommonAnnotationTypeEnum.CUSTOM_STYLE;
declare type CodeBlockNodeAnnotationValue = SelectionRangeAnnotation | CustomStyleAnnotation;
/**
 * RTE code node DTO class.
 */
export declare class RTECodeBlockNode extends RTEDecoratorNode<RTECodeBlock> {
  static readonly dtoName: string;
  readonly dtoName: string;
  type: NodeTypeEnum;
  parent: RTECodeBlock;
  text: string;
  language?: VegaRTECodeBlock['language'];
  annotationMap: Map<CodeBlockNodeAnnotationKey, CodeBlockNodeAnnotationValue>;
  constructor(id: string, content: string, language: VegaRTECodeBlock['language'], parentBlock: RTECodeBlock);
  /**
   * The code node toJSON method will called internal.
   *
   * @returns {VegaRTECodeNode} - An object contains content property.
   */
  toJSON(): VegaRTECodeNode;
  /**
   * @inheritDoc
   */
  toHtml(options?: VegaRTETransformOptions): string;
  /**
   * @inheritDoc
   */
  clone(parent: RTECodeBlock): RTECodeBlockNode;
  /**
   * @inheritDoc
   */
  protected doAnnotationActionApply(action: AnnotationAction): void;
  /**
   * @inheritDoc
   */
  protected doModifyActionApply(action: ModifyContentAction): void;
}
export {};
