import { BaseMessage, FunctionCall, OpenAIToolCall } from '@langchain/core/messages';
import { ChatMessageStatusEnum, CopilotBaseMessage } from '@metad/contracts';
export declare const DefaultModel = "gpt-3.5-turbo";
export declare const DefaultBusinessRole = "default";
export { ICopilot, AiProviderRole, CopilotBaseMessage, XpertAgentExecutionStatusEnum } from '@metad/contracts';
export interface BusinessOperation {
    businessArea: string;
    action: string;
    prompts: Record<string, string>;
    language: 'css' | 'javascript' | 'sql' | 'mdx';
    format: 'json' | 'text';
    value: any;
}
export declare enum CopilotChatMessageRoleEnum {
    System = "system",
    User = "user",
    Assistant = "assistant",
    Info = "info"
}
/**
 */
export interface CopilotChatMessage extends Omit<CopilotBaseMessage, 'status'> {
    status?: ChatMessageStatusEnum | 'done' | 'error' | 'answering';
    tool_call_id?: string;
    /**
     * If the message has a role of `function`, the `name` field is the name of the function.
     * Otherwise, the name field should not be set.
     */
    name?: string;
    /**
     * If the assistant role makes a function call, the `function_call` field
     * contains the function call name and arguments. Otherwise, the field should
     * not be set. (Deprecated and replaced by tool_calls.)
     */
    function_call?: string | FunctionCall;
    data?: JSONValue;
    /**
     * If the assistant role makes a tool call, the `tool_calls` field contains
     * the tool call name and arguments. Otherwise, the field should not be set.
     */
    tool_calls?: string | OpenAIToolCall[];
    /**
     * Additional message-specific information added on the server via StreamData
     */
    annotations?: JSONValue[] | undefined;
    error?: string;
    /**
     * Command name
     */
    command?: string;
    historyCursor?: number;
    reverted?: boolean;
    lcMessage?: BaseMessage;
}
export interface CopilotMessageGroup<T extends CopilotChatMessage = CopilotChatMessage> extends CopilotBaseMessage {
    messages: T[];
}
export interface CopilotChatResponseChoice {
}
export declare const CopilotDefaultOptions: {
    model: string;
    temperature: number;
};
export type BusinessRoleType = {
    name: string;
    title: string;
    titleCN?: string;
    description: string;
    copilotModel?: {
        copilotId: string;
        model: string;
    };
    avatar?: any;
};
export type Headers = Record<string, string | null | undefined>;
export type RequestOptions = {
    headers?: Record<string, string> | Headers;
    body?: object;
};
export type JSONValue = null | string | number | boolean | {
    [x: string]: JSONValue;
} | Array<JSONValue>;
/**
 * @deprecated use TAgentConfig
 */
export type AIOptions = {
    model?: string;
    temperature?: number | null;
    n?: number;
    useSystemPrompt?: boolean;
    verbose?: boolean;
    interactive?: boolean;
    recursionLimit?: number;
};
/**
 * Config for Agent (langgraph, not AI model)
 */
export type TAgentConfig = {
    verbose?: boolean;
    interactive?: boolean;
    recursionLimit?: number;
};
export declare enum MessageDataType {
    Route = "route",
    ToolsCall = "tools_call"
}
export declare enum NgmLanguageEnum {
    Chinese = "zh-CN",
    SimplifiedChinese = "zh-Hans",
    TraditionalChinese = "zh-Hant",
    English = "en"
}
export declare function isMessageGroup<T extends CopilotChatMessage = CopilotChatMessage>(message: CopilotBaseMessage): message is CopilotMessageGroup<T>;
