import { default as React } from 'react';
import { AdapterProps } from '../core/types';
import { ThoughtNode, ThoughtChainVersionMode } from '../thought_chain_types';
export interface RetriveChatMessageAdapterProps extends AdapterProps {
    contentType?: 'plainText' | 'stream';
    content: any;
    align?: 'left' | 'right' | 'center';
    status?: 'sending' | 'printing' | 'finished' | 'error';
    displayStatus?: 'ready' | 'processing' | 'thinking' | 'uploading' | 'error' | 'initializing' | 'analyzing';
    avatar?: string;
    isUser?: boolean;
    userAvatar?: string;
    aiAvatar?: string;
    userName?: string;
    aiName?: string;
    date?: string;
    time?: string;
    timestamp?: string;
    showTime?: boolean;
    llmConfig?: {
        model?: string;
        temperature?: number;
        diversity?: number;
        maxTokens?: number;
    };
    prompt?: string;
    retrieveInfo?: any;
    retrieveConfig?: any;
    /** 召回/LLM 是否处于加载中（例如后端仍在流式返回数据时），用于在 UI 中展示 loading 状态 */
    retrieveLoading?: boolean;
    /**
     * 整体 loading 状态（推荐使用）：
     * - true 时，语义回答/召回等区域会自动展示统一的 loading 文案
     * - 兼容老用法：未传 loading 时，仍可使用 retrieveLoading + contentType/displayStatus 控制
     */
    loading?: boolean;
    feedbackResult: null | number;
    queryId: string;
    eventsEmit?: (eventName: string, payload?: any) => void;
    defaultAnswer?: string;
    idx: number;
    isWelcome?: boolean;
    isLast?: boolean;
    messages: any[];
    respTime: number;
    resultType: number;
    tokens?: number;
    tools?: {
        like?: boolean;
        dislike?: boolean;
        repeat?: boolean;
        forward?: boolean;
        copy?: boolean;
        delete?: boolean;
        edit?: boolean;
    };
    is_download?: string;
    from?: string;
    supportMarkdown?: boolean;
    errorMessage?: string;
    /**
     * 是否开启思维链 UI 展示
     * 开启后，当数据中包含 chain 或外部传入 thoughtChainNodes 时，
     * 会在语义回答区域自动渲染思维链卡片。
     */
    enableThoughtChain?: boolean;
    /**
     * 思维链版本控制：
     * - auto: 按数据自动识别（默认）
     * - v1: 仅使用旧版 <think> 展示，不渲染思维链卡片
     * - v2: 强制使用新版 chain/thoughtNodes 渲染
     */
    thoughtChainVersionMode?: ThoughtChainVersionMode;
    /**
     * 原始 chain 数据（通常来自后端 reply.chain）
     */
    chain?: any;
    /**
     * 已映射好的思维链节点（实时 SSE 场景可直接传入）
     */
    thoughtChainNodes?: ThoughtNode[];
    /**
     * 是否开启思维链（后端字段 enableCot）
     */
    enableCot?: number;
    /**
     * 思维链总耗时（毫秒），从后端 SSE 流中的 chainRespTime 字段获取
     */
    chainRespTime?: number;
    /**
     * 思维链状态（用于流式模式）
     * status=4 时显示"思考中"，其他状态显示"思考完成"
     */
    thoughtChainStatus?: number;
    /**
     * 组件初次渲染时默认展示的标签页：
     * - semantic: 语义回答（默认）
     * - prompt: Prompt 内容
     * - retrieve: 召回信息
     * - config: 检索配置
     * 业务方可通过该参数在“无 LLM 语义回答”场景下直接切到召回信息等标签。
     */
    defaultShowTab?: TabType;
    /**
     * 是否启用 PrismJS 语法高亮（默认 false，使用普通代码块样式）
     */
    enablePrism?: boolean;
}
type TabType = 'semantic' | 'prompt' | 'retrieve' | 'config';
declare const RetriveChatMessageAdapter: React.FC<RetriveChatMessageAdapterProps>;
export default RetriveChatMessageAdapter;
