import React from 'react'; import type { StandardSchemaV1 } from '@standard-schema/spec'; import type { JSXElement } from 'estree-jsx'; import type { Node, Parent, Root, RootContent } from 'mdast'; import type { MdxJsxFlowElement, MdxJsxTextElement } from 'mdast-util-mdx-jsx'; import { ReactNode } from 'react'; import { nativeTags } from './html/valid-html-elements.js'; export type MyRootContent = RootContent | Root; declare module 'mdast' { interface HProperties { id?: string; } interface Data { hProperties?: HProperties; } } export type RenderNode = (node: MyRootContent, transform: (node: MyRootContent) => ReactNode) => ReactNode | undefined; export interface SafeMdxError { message: string; line?: number; schemaPath?: string; } export type ComponentPropsSchema = Record; export type CreateElementFunction = (type: any, props?: any, ...children: ReactNode[]) => ReactNode; export declare const SafeMdxRenderer: React.NamedExoticComponent<{ components?: ComponentsMap; markdown?: string; mdast: MyRootContent; renderNode?: RenderNode; componentPropsSchema?: ComponentPropsSchema; createElement?: CreateElementFunction; allowClientEsmImports?: boolean; addMarkdownLineNumbers?: boolean; }>; export declare class MdastToJsx { mdast: MyRootContent; str: string; jsxStr: string; c: ComponentsMap; errors: SafeMdxError[]; renderNode?: RenderNode; componentPropsSchema?: ComponentPropsSchema; createElement: CreateElementFunction; esmImports: Map; allowClientEsmImports: boolean; addMarkdownLineNumbers: boolean; constructor({ markdown: code, mdast, components, renderNode, componentPropsSchema, createElement, allowClientEsmImports, addMarkdownLineNumbers, }: { markdown?: string; mdast: MyRootContent; components?: ComponentsMap; renderNode?: (node: MyRootContent, transform: (node: MyRootContent) => ReactNode) => ReactNode | undefined; componentPropsSchema?: ComponentPropsSchema; createElement?: CreateElementFunction; allowClientEsmImports?: boolean; addMarkdownLineNumbers?: boolean; }); addLineNumberToProps(props: Record | undefined, node: MyRootContent): Record; validateComponentProps(componentName: string, props: Record, line?: number): void; mapMdastChildren(node: any): any; mapJsxChildren(node: any): any; jsxTransformer(node: MyRootContent): ReactNode; transformJsxElement(jsxElement: JSXElement, onError?: (err: SafeMdxError) => void, line?: number): ReactNode; getJsxAttrs(node: MdxJsxFlowElement | MdxJsxTextElement, onError?: (err: SafeMdxError) => void): [string, any][]; run(): any; mdastTransformer(node: MyRootContent, parentType: string): ReactNode; } export declare function mdastBfs(node: Parent | Node, cb?: (node: Node | Parent) => any): any[]; type ComponentsMap = { [k in (typeof nativeTags)[number]]?: any; } & { [key: string]: any; }; export {}; //# sourceMappingURL=safe-mdx.d.ts.map