import { type Node, type RenderNode, type RendererConfig } from './renderer.js'; /** * Configuration for rich text renderers */ export interface BaseRendererConfig extends RendererConfig { } /** * Base class for rich text renderers that provides common functionality * while allowing framework-specific implementations */ export declare abstract class BaseRichTextRenderer { protected config: BaseRendererConfig; constructor(config?: Partial); /** * Main render method - converts Slate JSON to framework-specific nodes */ abstract render(content: Node[]): TNode[]; /** * Framework-agnostic tree processing (shared across all implementations) */ protected buildRenderTree(nodes: Node[]): RenderNode[]; /** * Framework-agnostic HTML entity decoding (shared across all implementations) */ protected decodeEntities(text: string): string; /** * Get configuration value with fallback */ protected getConfig(key: K, fallback?: BaseRendererConfig[K]): BaseRendererConfig[K]; /** * Framework-specific element creation (must be implemented by each framework) */ protected abstract createElement(node: RenderNode, children: TNode[], index: number): TNode; /** * Framework-specific text node creation (must be implemented by each framework) */ protected abstract createTextNode(node: RenderNode, index: number): TNode; /** * Common node processing logic - can be overridden if needed */ protected renderNodes(nodes: RenderNode[]): TNode[]; /** * Common individual node rendering - can be overridden if needed */ protected renderNode(node: RenderNode, index: number): TNode; }