import React from 'react'; import { MarkdownEditorProps } from '../../'; import { MessageBubbleData } from '../type'; /** * MarkdownPreview 组件用于渲染 Markdown 内容的预览。 * * @param {Object} props - 组件的属性。 * @param {string} props.content - 要渲染的 Markdown 内容。 * @param {MarkdownEditorProps['fncProps']} props.fncProps - Markdown 编辑器的函数属性。 * @param {boolean} [props.typing] - 是否启用打字机效果。 * @param {React.ReactNode} props.extra - 额外的 React 节点。 * @param {React.ReactNode} props.docListNode - 文档列表节点。 * @param {React.RefObject} props.htmlRef - HTML 元素的引用。 * * @returns {JSX.Element} 渲染的 Markdown 预览组件。 */ export interface MarkdownPreviewProps { /** markdown 源文本内容,例如: "# 标题\n这是正文" */ content: string; /** markdown 编辑器的功能属性配置,控制编辑器行为 */ fncProps?: MarkdownEditorProps['fncProps']; placement?: 'left' | 'right'; /** 是否启用打字机效果,例如: true */ typing?: boolean; /** 额外的 React 节点,用于显示附加内容,例如: */ extra?: React.ReactNode; /** 文档列表节点,用于展示相关文档,例如: */ docListNode?: React.ReactNode; /** HTML 元素的引用,用于获取容器尺寸,例如: useRef(null) */ htmlRef?: React.RefObject; /** 内容是否已完成加载,例如: true */ isFinished?: boolean; style?: React.CSSProperties; originData?: MessageBubbleData; markdownRenderConfig?: MarkdownEditorProps; /** 在 content 前面插入的 DOM 元素,例如:
前置内容
*/ beforeContent: React.ReactNode; /** 在 content 后面插入的 DOM 元素,例如:
后置内容
*/ afterContent: React.ReactNode; } /** * Markdown 预览组件 * @component MarkdownPreview * * @param {Object} props - 组件属性 * @param {string} props.content - Markdown 内容 * @param {ReactNode} props.extra - 额外的内容 * @param {boolean} props.typing - 是否正在输入 * @param {React.RefObject} props.htmlRef - HTML 元素的引用 * @param {Object} props.fncProps - 功能属性 * @param {ReactNode} props.docListNode - 文档列表节点 * @param {boolean} props.isFinished - 内容是否已完成 * @param {ReactNode} props.beforeContent - 在 content 前面插入的 DOM 元素 * @param {ReactNode} props.afterContent - 在 content 后面插入的 DOM 元素 * * @description * 这是一个用于渲染 Markdown 内容的预览组件。它支持以下功能: * - 普通 Markdown 渲染 * - 支持打字机效果 * - 错误边界处理 * - 支持 Apaasify 自定义渲染 * - 支持紧凑模式和标准模式 * - 支持弹出层展示额外内容 * - 支持在 content 前后插入自定义 DOM 元素 * * @example * ```tsx * 前置内容} * afterContent={
后置内容
} * /> * ``` */ export declare const MarkdownPreview: (props: MarkdownPreviewProps) => React.JSX.Element;