import { BlockAnnotationsEntity, RTEBlock } from './block.abstract';
import { VegaRTETransformOptions, VegaRTEBlockAnnotations, VegaRTEListBlock, VegaRTEListBlockType } from '../../interface';
import { RTEListItemBlock } from './list-item-block';
import { VegaRTEContent } from '../content-state';
import { RTETextNode } from '../nodes/text-node';
import { Nullable } from '../../../../types/general';
import { RTEHtmlBlock } from './html-block';
export declare type RTEListBlockTagType = 'ol' | 'ul';
/**
 * List block
 */
export declare class RTEListBlock extends RTEBlock<VegaRTEContent | RTEListItemBlock | RTEHtmlBlock, RTEListItemBlock> {
  static readonly dtoName: string;
  readonly dtoName: string;
  type: VegaRTEListBlockType;
  children: RTEListItemBlock[];
  parent: RTEListItemBlock | VegaRTEContent | RTEHtmlBlock;
  constructor(id: string, type: VegaRTEListBlockType, options?: VegaRTETransformOptions);
  /**
   * Converts a VegaRTEListBlock object to an RTEListBlock
   *
   * @param {VegaRTEListBlock} block - Converts a `VegaRTEListBlock` object into an `RTEListBlock`.
   * @param {VegaRTETransformOptions} options - Optional transformation options.
   * @returns {RTEListBlock} Return an instance of `RTEListBlock`
   */
  static from(block: VegaRTEListBlock, options?: VegaRTETransformOptions): RTEListBlock;
  /**
   * The function `createAnnotationEntity` creates a block annotation entity based on the provided type
   * and value.
   *
   * @param {keyof VegaRTEBlockAnnotations} type - The `type` parameter is a key of the `VegaRTEBlockAnnotations` enum, which specifies
   * the type of annotation entity to create.
   * @param {unknown} value - The `value` parameter in the `createAnnotationEntity` function is the value
   * that will be used to create the annotation entity. It can be of any type depending on the specific
   * annotation being created.
   * @returns {Nullable<BlockAnnotationsEntity>} The `createAnnotationEntity` function returns a nullable tuple containing a
   * `BlockAnnotationTypeEnum` and a `BlockAnnotation` object.
   */
  protected static createAnnotationEntity(type: keyof VegaRTEBlockAnnotations, value: unknown): Nullable<BlockAnnotationsEntity>;
  /**
   * @inheritDoc
   */
  toJSON(): VegaRTEListBlock;
  /**
   * @inheritDoc
   */
  toHtml(options?: VegaRTETransformOptions): string;
  /**
   * @inheritDoc
   */
  isNotEmpty(): boolean;
  /**
   * @inheritDoc
   */
  getLastNode(): RTETextNode;
  /**
   * @inheritDoc
   */
  clone(parent: RTEListItemBlock | VegaRTEContent | RTEHtmlBlock): RTEListBlock;
  /**
   * Returns the block tag based on the type of the list block.
   *
   * @returns {RTEListBlockTagType} - The block tag for the list block, either 'ol' or 'ul'.
   */
  getBlockTag(): RTEListBlockTagType;
}
