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 { VegaRTEBaseRenderer } from '../../components/vega-rich-text-editor/dto/renderers/base-renderer'; import { VegaRTEToolbarButtonRenderer } from '../../components/vega-rich-text-editor/extensions/base-toolbar-button-renderer'; import { VegaRTERenderResult } from '../../components/vega-rich-text-editor/interface'; import { Nullable } from '../../types/general'; export declare type BaseRenderer = VegaRTEBaseRenderer; /** * RTEDTORendererManager is a singleton class that manages the registration and retrieval of RTE DTO renderers. */ declare class RTEDTORendererManager { private RTE_DTO_RENDERER_MAP; private RTE_TOOLBAR_BUTTON_RENDERER_MAP; /** * Per-host toolbar button renderer map. * Stores a host-specific renderer map so that extensions that register during * {@link VegaRTEExtension#prepareBeforeLoad} can provide isolated renderer instances * for each {@link HTMLVegaRichTextEditorElement}. At render time this map is checked * first; the global singleton map is used as a fallback. */ private hostToolbarButtonRendererMap; /** * Registers a new RTE DTO renderer. * * @param {string} type - The type identifier for the RTE DTO renderer. * @param {VegaRTEBaseRenderer} RTEDTORenderer - The renderer instance for the RTE DTO. */ registerRTEDTORenderer(type: string, RTEDTORenderer: BaseRenderer): void; /** * Registers a new RTE Toolbar Button Renderer. * * @param {string} type - The type identifier for the RTE Toolbar Button Renderer. * @param {VegaRTEToolbarButtonRenderer} RTEToolbarButtonRenderer - The renderer instance for the RTE Toolbar Button. */ registerRTEToolbarButtonRenderer(type: string, RTEToolbarButtonRenderer: VegaRTEToolbarButtonRenderer): void; /** * Registers a host-specific toolbar button renderer. * The per-host renderer takes precedence over the global singleton when the host * element is passed to {@link getRTEToolbarButtonRenderer}. * * @typedef HTMLVegaRichTextEditorElement - The rich text editor host element type. * @param {HTMLVegaRichTextEditorElement} host - The rich text editor host element. * @param {string} type - The type identifier for the toolbar button renderer. * @param {VegaRTEToolbarButtonRenderer} renderer - The renderer instance to register for this host. */ registerRTEToolbarButtonRendererForHost(host: HTMLVegaRichTextEditorElement, type: string, renderer: VegaRTEToolbarButtonRenderer): void; /** * Retrieves the RTE renderer for a given type. * * @param {string} type - The type identifier for the RTE block. * @returns {Nullable} - The renderer instance for the RTE block, or null if not found. */ getRTERenderer(type: string): Nullable; /** * Retrieves the RTE Toolbar Button Renderer for a given type. * When a host element is provided the per-host map registered via * {@link registerRTEToolbarButtonRendererForHost} is checked first; the global * singleton map is used as a fallback so that extensions that do not override * {@link VegaRTEExtension#prepareBeforeLoad} continue to work unchanged. * * @typedef HTMLVegaRichTextEditorElement - The rich text editor host element type. * @param {string} type - The type identifier for the RTE Toolbar Button Renderer. * @param {HTMLVegaRichTextEditorElement} [host] - Optional host element for per-host lookup. * @returns {Nullable} - The renderer instance for the RTE Toolbar Button, or null if not found. */ getRTEToolbarButtonRenderer(type: string, host?: HTMLVegaRichTextEditorElement): Nullable; } declare const _default: RTEDTORendererManager; export default _default;