import { ReactElement, ReactNode } from 'react'; import { Note } from '../components/Footnote/FootnotesProvider'; import { Config } from '../config/ConfigProvider'; import { Theme } from '../themes/ThemeProvider'; import { ComponentsConfig, JSONChildren, JSONNode } from './types'; export type JSONRenderer = (data?: JSONChildren | null, index?: number, notes?: Note[], config?: Config, theme?: Theme | string) => ReactElement | string | null; declare const createRenderer: (componentMappings: ComponentsConfig) => JSONRenderer; /** * Recursively renders children from JSON */ declare const renderChildren: (render: (data: JSONNode, index?: number, notes?: Note[]) => ReactNode, children: JSONChildren, notes: Note[]) => ReactNode; /** * Get component configuration from the JSON type to component map. */ declare const getComponentConfig: (componentMappings: ComponentsConfig, data?: JSONNode) => { type: any; props: any; children: any; value: any; } | { type: string; props?: undefined; children?: undefined; value?: undefined; } | null; export { createRenderer, getComponentConfig, renderChildren };