import { VegaRTEListItemBlock, VegaRTETransformOptions } from '../../interface';
import { RTETextNode } from '../nodes/text-node';
import { RTEListBlock } from './list-block';
import { RTETextBlock } from './text-block';
/**
 * List item block
 */
export declare class RTEListItemBlock extends RTETextBlock {
  /**
   * TODO: Refactor the list item properties children and nestList, merge two properties together.
   *
   * 1. Update the type of `children` to include `RTEListBlock` as a possible type.
   * 2. The list block children should text block array and nest list block array, The text block should wrap a `li` tag when rendering.
   */
  nestList?: RTEListBlock[];
  parent: RTEListBlock;
  constructor(id: string, nestList?: RTEListBlock[], options?: VegaRTETransformOptions);
  /**
   * Converts a VegaRTEListItemBlock object to an RTEListItemBlock
   *
   * @param {VegaRTEListBlock} block - Converts a `VegaRTEListItemBlock` object into an `RTEListItemBlock`.
   * @param {VegaRTETransformOptions} options - Optional transformation options.
   * @returns {RTEListItemBlock} Return an instance of `RTEListItemBlock`
   */
  static from(block: VegaRTEListItemBlock, options?: VegaRTETransformOptions): RTEListItemBlock;
  /**
   * @inheritDoc
   */
  toJSON(): VegaRTEListItemBlock;
  /**
   * @inheritDoc
   */
  toHtml(options?: VegaRTETransformOptions): string;
  /**
   * @inheritDoc
   */
  cloneWithNodes(nodes: RTETextNode[]): RTEListItemBlock;
  /**
   * @inheritDoc
   */
  getLastNode(): RTETextNode;
  /**
   * Create a new list item block.
   *
   * @returns {RTEListItemBlock} - A list item block.
   */
  createNewListItem(): RTEListItemBlock;
  /**
   * @inheritDoc
   */
  clone(parent: RTEListBlock): RTEListItemBlock;
}
