import { RTEBlock } from '../../components/vega-rich-text-editor/dto/blocks/block.abstract';
import { RTENode } from '../../components/vega-rich-text-editor/dto/nodes/node.abstract';
import { ClassType } from '../../types/class.type';
import { Nullable } from '../../types/general';
export declare type RTEBlockDTOClass = typeof RTEBlock;
export declare type RTENodeDTOClass = typeof RTENode;
/**
 * RTEDTOClassManager is a singleton class that manages the registration and retrieval of RTE DTO classes.
 * It allows for the dynamic handling of different RTE blocks and nodes by their types.
 */
declare class RTEDTOClassManager {
  private RTE_BLOCK_DTO_CLASS_MAP;
  private RTE_NODE_DTO_CLASS_MAP;
  /**
   * Registers a new RTE DTO class.
   *
   * @typedef T - The type of the RTE DTO class to register.
   * @param {string} type - The type identifier for the RTE DTO class.
   * @param {ClassType<T>} RTEDTOClass - The class constructor for the RTE DTO.
   */
  registerRTEDTOClass<T>(type: string, RTEDTOClass: ClassType<T>): void;
  /**
   * Retrieves the RTE block class for a given type.
   *
   * @param {string} type - The type identifier for the RTE block.
   * @returns {Nullable<RTEBlockDTOClass>} - The class constructor for the RTE block, or null if not found.
   */
  getRTEBlockClass(type: string): Nullable<RTEBlockDTOClass>;
  /**
   * Retrieves the RTE node class for a given type.
   *
   * @param {string} type - The type identifier for the RTE node.
   * @returns {Nullable<RTENodeDTOClass>} - The class constructor for the RTE node, or null if not found.
   */
  getRTENodeClass(type: string): Nullable<RTENodeDTOClass>;
}
declare const _default: RTEDTOClassManager;
export default _default;
