import { V2NIMAIUser, V2NIMAIModelCallResult, V2NIMProxyAIModelCallParams, V2NIMAIModelStreamCallStopParams, V2NIMAIModelStreamCallResult, V2NIMBindUserAIBotToQrCodeParams, V2NIMCreateUserAIBotParams, V2NIMCreateUserAIBotResult, V2NIMDeleteUserAIBotParams, V2NIMGetUserAIBotListParams, V2NIMGetUserAIBotListResult, V2NIMGetUserAIBotParams, V2NIMRefreshUserAIBotTokenParams, V2NIMRefreshUserAIBotTokenResult, V2NIMUpdateUserAIBotParams, V2NIMUserAIBot } from '../v2_def/v2_nim_struct_def';
import { EventEmitter } from 'eventemitter3';
export declare interface V2NIMAIListener {
    /** 数字人请求回调 */
    proxyAIModelCall: [V2NIMAIModelCallResult];
    /** 数字人流式输出回调 @since v10.8.30 */
    proxyAIModelStreamCall: [V2NIMAIModelStreamCallResult];
}
export declare class V2NIMAIService extends EventEmitter<V2NIMAIListener> {
    instance: any;
    constructor();
    /** @brief 数字人拉取接口 */
    getAIUserList(): Promise<Array<V2NIMAIUser>>;
    /**
     * AI 数字人请求代理接口
     * @param params AI模型参数信息
     * @returns Promise<void>
     */
    proxyAIModelCall(params: V2NIMProxyAIModelCallParams): Promise<void>;
    /**
     * 停止流式输出
     * @param params 停止流式输出参数
     * @returns Promise<void>
     * @since v10.8.30
     * @example
     * ```javascript
     * const message = v2.aiService.stopAIModelStreamCall({
     *    accountId: 'AI user account ID',
     *    requestId: 'Request ID'
     * })
     * ```
     */
    stopAIModelStreamCall(params: V2NIMAIModelStreamCallStopParams): Promise<void>;
    /**
     * 创建用户级 AI Bot 账号
     * @param params 创建参数
     * @returns Promise<V2NIMCreateUserAIBotResult>
     * @example
     * ```javascript
     * const result = await v2.aiService.createUserAIBot({
     *   accountId: 'ai_bot_account_id',
     *   name: 'AI Bot',
     *   avatar: 'https://example.com/avatar.png',
     *   sign: 'AI assistant',
     *   serverExtension: '{"source":"demo"}'
     * })
     * const token = result.token
     * ```
     */
    createUserAIBot(params: V2NIMCreateUserAIBotParams): Promise<V2NIMCreateUserAIBotResult>;
    /**
     * 分页查询当前用户名下的用户级 AI Bot 账号列表
     * @param params 查询参数
     * @returns Promise<V2NIMGetUserAIBotListResult>
     * @example
     * ```javascript
     * const result = await v2.aiService.getUserAIBotList({
     *   limit: 20
     * })
     * result.bots.forEach((bot) => {
     *   console.log(bot.accountId, bot.name)
     * })
     * if (result.hasMore && result.nextToken) {
     *   await v2.aiService.getUserAIBotList({
     *     pageToken: result.nextToken,
     *     limit: 20
     *   })
     * }
     * ```
     */
    getUserAIBotList(params?: V2NIMGetUserAIBotListParams): Promise<V2NIMGetUserAIBotListResult>;
    /**
     * 查询当前用户名下指定用户级 AI Bot 账号的完整信息
     * @param params 查询参数
     * @returns Promise<V2NIMUserAIBot>
     * @example
     * ```javascript
     * const bot = await v2.aiService.getUserAIBot({
     *   accountId: 'ai_bot_account_id'
     * })
     * console.log(bot.accountId, bot.ownerId)
     * ```
     */
    getUserAIBot(params: V2NIMGetUserAIBotParams): Promise<V2NIMUserAIBot>;
    /**
     * 更新当前用户名下的指定用户级 AI Bot 账号信息
     * @param params 更新参数
     * @returns Promise<void>
     * @example
     * ```javascript
     * await v2.aiService.updateUserAIBot({
     *   accountId: 'ai_bot_account_id',
     *   name: 'New AI Bot',
     *   avatar: 'https://example.com/new-avatar.png',
     *   serverExtension: '{"source":"updated"}'
     * })
     * ```
     */
    updateUserAIBot(params: V2NIMUpdateUserAIBotParams): Promise<void>;
    /**
     * 删除当前用户名下的指定用户级 AI Bot 账号
     * @param params 删除参数
     * @returns Promise<void>
     * @example
     * ```javascript
     * await v2.aiService.deleteUserAIBot({
     *   accountId: 'ai_bot_account_id'
     * })
     * ```
     */
    deleteUserAIBot(params: V2NIMDeleteUserAIBotParams): Promise<void>;
    /**
     * 刷新指定用户级 AI Bot 账号的登录密钥
     * @param params 刷新参数
     * @returns Promise<V2NIMRefreshUserAIBotTokenResult>
     * @example
     * ```javascript
     * const result = await v2.aiService.refreshUserAIBotToken({
     *   accountId: 'ai_bot_account_id'
     * })
     * const token = result.token
     * ```
     */
    refreshUserAIBotToken(params: V2NIMRefreshUserAIBotTokenParams): Promise<V2NIMRefreshUserAIBotTokenResult>;
    /**
     * 通过二维码绑定用户级 AI Bot
     * @param params 绑定参数
     * @returns Promise<void>
     * @example
     * ```javascript
     * await v2.aiService.bindUserAIBotToQrCode({
     *   accountId: 'ai_bot_account_id',
     *   token: 'ai_bot_login_token',
     *   qrCode: 'qr_code_uuid'
     * })
     * ```
     */
    bindUserAIBotToQrCode(params: V2NIMBindUserAIBotToQrCodeParams): Promise<void>;
}
