import { InjectionKey, Ref } from 'vue';
import { EditorCore } from '../../../foundation/editorManager/editor';
import { EditorAction } from '../../hooks/use-editor';
import { IAnchor, PluginFlag } from '../../../typings';
/**
 * * 获取编辑器内容时，是否对内容进行指定格式化
 */
export interface ContentOptions {
    /**
     * * 是否返回带有主播文本高亮样式标记
     */
    withHighlight?: boolean;
    /**
     * * 是否返回带有文本审核高亮样式标记
     */
    withAuditHighlight?: boolean;
}
export declare const defaultContentOptions: ContentOptions;
export interface EditorContext {
    name: 'Editor';
    editorCore: Ref<EditorCore | undefined>;
    editorAction: Ref<EditorAction | undefined>;
    getContent: (options?: ContentOptions) => string;
    setContent: (content: string) => void;
    appendContent: (content: string | string[]) => void;
    getTextContent: () => string[];
    insertContent: (content: string | Node) => void;
    deleteContent: () => void;
    updateContent: (content: string | Node) => void;
    isCaret: () => boolean;
    isRange: () => boolean;
    isSelectionContainsTag: (type: PluginFlag) => boolean;
    getAnchorTtsMark: (id: number, startFromCursor?: boolean) => string;
    getAnchorTtsEmotionAndRole: (id: number) => [string, string | undefined];
    isAllMarkedByAnchor: () => boolean;
    addExtraAnchors: (data: IAnchor[]) => void;
    clearContent: () => void;
    renderHighlight: (matchingContent: string) => void;
    unrenderHighlight: () => void;
    refineContext?: RefineContext;
}
export declare const EditorInjectionKey: InjectionKey<EditorContext>;
declare const HIGHLIGHT_CLS = "highlight";
declare const auditHighlightBem: import("@linker-design/utils").Bem;
declare const AUDIT_HIGHLIGHT_CLS: string;
export { HIGHLIGHT_CLS, auditHighlightBem, AUDIT_HIGHLIGHT_CLS };
export interface RefineContext {
    agentId: string;
    createSession: (data: {
        agentId: string;
        sessionId: string;
    }) => Promise<{
        data: ChatInfoResp;
        [key: string]: any;
    }>;
    sendSessionMessage: {
        (data: ChatMessageReq, options: Recordable): Promise<void>;
        abort: () => void | undefined;
    };
    abortSession: (data: {
        conversationId?: string;
        sessionId?: string;
    }) => Promise<any>;
}
/**
 * ChatMessageReq
 */
export interface ChatMessageReq {
    /**
     * 是否深度思考，0否 1是
     */
    deepseek?: number;
    /**
     * 引用的网页，多个以逗号分隔
     */
    htmlUrls?: string;
    messageRequest?: MessageRequest;
    /**
     * 模型名称，Deepseek-R1、Gemini-2.5-flash、Claude-opus-4.1
     */
    modelName?: string;
    /**
     * 参考文件信息json，前端展示回显用
     */
    refFiles?: string;
    /**
     * 引用文档，多个以逗号分隔
     */
    refUrls?: string;
    /**
     * 是否搜索，0否 1是
     */
    search?: number;
    /**
     * 待优化的源内容
     */
    sourceContent?: string;
    /**
     * 待优化的内容源链接地址
     */
    sourceUrls?: string[];
    /**
     * 模板id
     */
    templateId?: number;
    tenantId?: string;
    /**
     * 会话类型，0写稿 1每日要闻
     */
    type?: number;
    userCode?: string;
    [property: string]: any;
}
/**
 * MessageRequest
 */
export interface MessageRequest {
    agent_id?: string;
    extra_params?: {
        [key: string]: {
            [key: string]: any;
        };
    };
    message?: Message;
    meta_data?: MetaData;
    [property: string]: any;
}
/**
 * Message
 */
export interface Message {
    content?: string;
    conversation_id?: string;
    data?: {
        [key: string]: any;
    }[];
    history?: {
        [key: string]: any;
    }[];
    [property: string]: any;
}
/**
 * MetaData
 */
export interface MetaData {
    ai_rewrite?: string;
    data?: {
        [key: string]: any;
    }[];
    is_search?: string;
    model_name?: string;
    rewrite_content?: string;
    sessionId?: string;
    url?: string[];
    word_number?: string;
    [property: string]: any;
}
export interface ChatInfoResp {
    agentId?: string;
    chatContext?: string;
    content?: string;
    conversionId?: string;
    id?: number;
    sessionId?: string;
    welcome?: string;
    [property: string]: any;
}
