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<HTMLDivElement>} 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 节点，用于显示附加内容，例如: <Button>更多</Button> */
    extra?: React.ReactNode;
    /** 文档列表节点，用于展示相关文档，例如: <DocList items={[...]} /> */
    docListNode?: React.ReactNode;
    /** HTML 元素的引用，用于获取容器尺寸，例如: useRef<HTMLDivElement>(null) */
    htmlRef?: React.RefObject<HTMLDivElement>;
    /** 内容是否已完成加载，例如: true */
    isFinished?: boolean;
    style?: React.CSSProperties;
    originData?: MessageBubbleData;
    markdownRenderConfig?: MarkdownEditorProps;
    /** 在 content 前面插入的 DOM 元素，例如: <div>前置内容</div> */
    beforeContent: React.ReactNode;
    /** 在 content 后面插入的 DOM 元素，例如: <div>后置内容</div> */
    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
 * <MarkdownPreview
 *   content="# Hello World"
 *   typing={false}
 *   htmlRef={ref}
 *   beforeContent={<div>前置内容</div>}
 *   afterContent={<div>后置内容</div>}
 * />
 * ```
 */
export declare const MarkdownPreview: (props: MarkdownPreviewProps) => React.JSX.Element;
