import { type ReactNode } from 'react'; import { BaseRichTextRenderer, type BaseRendererConfig } from '../../components/richText/base.js'; import { type RenderNode, type Node } from '../../components/richText/renderer.js'; import { type ElementRenderer, type LeafRenderer, type ElementMap, type LeafMap } from './lib.js'; /** * React-specific renderer configuration */ export interface ReactRendererConfig extends BaseRendererConfig { elements?: ElementMap; leafs?: LeafMap; } /** * React implementation of the rich text renderer using the base class */ export declare class ReactRichTextRenderer extends BaseRichTextRenderer { private elements; private leafs; constructor(config?: Partial); /** * Render Slate JSON content to React nodes */ render(content: Node[]): ReactNode[]; /** * Create a React element from a render node */ protected createElement(node: RenderNode, children: ReactNode[], index: number): ReactNode; /** * Create a React text node with marks */ protected createTextNode(node: RenderNode, index: number): ReactNode; /** * Extract text content from render nodes recursively */ private extractTextFromRenderNodes; /** * Get default element component for unknown types * Always uses span for safe rendering in any context */ private getDefaultElement; /** * Get default leaf component for unknown marks * Always uses span for safe rendering */ private getDefaultLeaf; } /** * Factory function to create a React renderer */ export declare function createReactRenderer(config?: Partial): ReactRichTextRenderer;