import { NIMResCode } from './client_def';
import { UserNameCard } from './user_def';
/** @brief AI 数字人消息角色类型 */
export declare enum NIMAIModelRoleType {
    /** 系统 */
    kNIMMessageAIModelRoleTypeSystem = 0,
    /** 用户 */
    kNIMMessageAIModelRoleTypeUser = 1,
    /** 助手 */
    kNIMMessageAIModelRoleTypeAssistant = 2
}
/** @brief AI 数字人消息模型类型 */
export declare enum NIMAIModelType {
    kNIMMessageAIModelTypeUnknown = 0,
    /** 通义千问 */
    kNIMMessageAIModelTypeQianWen = 1,
    /** 微软 Azure */
    kNIMMessageAIModelTypeAzure = 2,
    /** 私有本地大模型 */
    kNIMMessageAIModelTypePrivate = 3
}
/** @brief 调用大模型的请求内容 */
export interface NIMAIModelCallContent {
    msg_: string;
    type_: number;
}
/** @brief AI 数字人消息上下文参数 */
export interface NIMAIModelCallMessage {
    role_: NIMAIModelRoleType;
    msg_: string;
    type_: number;
}
/** @brief AI 数字人模型配置参数 */
export interface NIMAIModelConfigParams {
    prompt_: string;
    max_tokens_: number;
    top_p_: number;
    temperature_: number;
}
/** @brief AI 数字人代理请求反垃圾配置 */
export interface NIMProxyAICallAntispamConfig {
    antispam_enabled_: boolean;
    antispam_business_id_: string;
}
export interface NIMAIModelCallBase {
    account_id_: string;
    content_: NIMAIModelCallContent;
    messages_: Array<NIMAIModelCallMessage>;
    prompt_variables_: string;
    model_config_params_: NIMAIModelConfigParams;
}
/** @brief AI 数字人代理请求结果 */
export interface NIMAIModelCallResult {
    account_id_: string;
    request_id_: string;
    content_: NIMAIModelCallContent;
}
export interface AIUserNameCard extends UserNameCard {
    model_type_: NIMAIModelType;
}
/** @brief AI 数字人模型类型 */
export interface NIMAIModelConfig extends NIMAIModelConfigParams {
    /** 具体大模型版本模型名 */
    model_: string;
    /** 提示词对应的变量 */
    prompt_keys_: Array<string>;
}
/** @brief AI 数字人代理请求参数 */
export interface NIMProxyAIModelCallParams extends NIMAIModelCallBase {
    request_id_: string;
    antispam_config_: NIMProxyAICallAntispamConfig;
}
export type GetAIUserListCallback = (rescode: NIMResCode, users: Array<AIUserNameCard>) => void;
export type ProxyAIModelCallCallback = (rescode: NIMResCode) => void;
export interface NIMAIAPI {
    InitEventHandlers(): void;
    GetAIUserList(cb: GetAIUserListCallback): Promise<Array<AIUserNameCard>>;
    ProxyAIModelCall(params: NIMProxyAIModelCallParams, cb: ProxyAIModelCallCallback): Promise<void>;
}
