import { NIMClientType, NIMResCode } from './client_def'; import { NIMSessionType } from './session_def'; import { NIMAIMessageRAGInfo } from './ai_def'; /** @enum NIMNotificationId 通知类型 */ export declare enum NIMNotificationId { /** 普通群拉人,{"ids":["a1", "a2"],"user_namecards":["namecard1", "namecard2"], "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */ kNIMNotificationIdTeamInvite = 0, /** 普通群踢人,{"ids":["a1", "a2"],"user_namecards":["namecard1", "namecard2"], "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */ kNIMNotificationIdTeamKick = 1, /** 退出群,{"id" : "a1","user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamLeave = 2, /** 群信息更新,{"team_info":team_info,"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamUpdate = 3, /** 群解散,{"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamDismiss = 4, /** 高级群申请加入成功,{"id":"a1","user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamApplyPass = 5, /** 高级群移交群主,{"id":"a1", "leave" : boolean,"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamOwnerTransfer = 6, /** 增加管理员,{"ids":["a1","a2"],"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamAddManager = 7, /** 删除管理员,{"ids":["a1","a2"],"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamRemoveManager = 8, /** 高级群接受邀请进群,{"id":"a1","user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdTeamInviteAccept = 9, /** 禁言/解禁群成员,{"user_namecards":["namecard1", "namecard2"],"team_info":team_info,"id":"a1","mute":1-禁言,0-解禁} */ kNIMNotificationIdTeamMuteMember = 10, /** 未接电话,{"calltype":1,"channel":6146078138783760761,"from":"id1","ids":["id1","id2"], "time":1430995380471}*/ kNIMNotificationIdNetcallMiss = 101, /** 话单,{"calltype":2,"channel":6146077129466446197,"duration":8,"ids":["id1","id2"],"time":1430995117398}*/ kNIMNotificationIdNetcallBill = 102, /** 创建群 {"team_info" : team_info} //群组信息(Keys SEE MORE `nim_team_def.h` 『群组信息 Json Keys』)*/ kNIMNotificationIdTeamSyncCreate = 1000, /** 群成员变更{"team_member" : team_member_info} //群组成员信息(不包括自己)(Keys SEE MORE `nim_team_def.h` 『群组成员信息 Json Keys』)*/ kNIMNotificationIdTeamMemberChanged = 1001, /** 同步通知:修改群成员属性(可能是自己的或别人的){"team_member" : team_member_info} 目前只需kNIMTeamUserKeyNick和kNIMTeamUserKeyBits*/ kNIMNotificationIdTeamSyncUpdateMemberProperty = 1002, /** 本地操作创建群 {"ids" : ["a1", "a2"]}*/ kNIMNotificationIdLocalCreateTeam = 2000, /** 本地操作申请加入群 {}*/ kNIMNotificationIdLocalApplyTeam = 2001, /** 本地操作拒绝申请 {"id":"a1"}*/ kNIMNotificationIdLocalRejectApply = 2002, /** 本地操作拒绝邀请 {"id":"a1"}*/ kNIMNotificationIdLocalRejectInvite = 2003, /** 本地操作更新群成员属性 {"team_member" : team_member_info} */ kNIMNotificationIdLocalUpdateMemberProperty = 2004, /** 本地操作更新他人nickname {}*/ kNIMNotificationIdLocalUpdateOtherNick = 2005, /** 本地操作获取群信息 {"team_info":team_info}*/ kNIMNotificationIdLocalGetTeamInfo = 2006, /** 本地操作获取群成员信息结束*/ kNIMNotificationIdLocalGetTeamList = 2007, /** 本地操作对群成员禁言 {"id":"a1", "mute":1-禁言,0-解禁} */ kNIMNotificationIdLocalMuteMember = 2008, /** 本地操作对群禁言 {} */ kNIMNotificationIdLocalMute = 2009, /** 获取群消息未读数 {[{"client_msg_id":"", "count":int, "read_accid":"当前已读成员的accid"},...]}*/ kNIMNotificationIdLocalGetTeamMsgUnreadCount = 2010, /** 获取群消息未读列表 {"client_msg_id":"", "read":["id1",...], "unread":["id2",...]}*/ kNIMNotificationIdLocalGetTeamMsgUnreadList = 2011, /** 拒绝电话,{"calltype":1,"channel":6146078138783760761,"from":"id1","ids":["id1","id2"],"time":1430995380471}*/ kNIMNotificationIdLocalNetcallReject = 3103, /** 无应答,未接通电话,{"calltype":1,"channel":6146078138783760761,"from":"id1","ids":["id1","id2"],"time":1430995380471}*/ kNIMNotificationIdLocalNetcallNoResponse = 3104, /** 未接通前主叫方挂断,{"calltype":1,"channel":6146078138783760761,"from":"id1","ids":["id1","id2"],"time":1430995380471}*/ kNIMNotificationIdLocalNetcallCanceled = 3105, /** 超大群拉人,{"ids":["a1", "a2"],"user_namecards":["namecard1", "namecard2"], "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */ kNIMNotificationIdSuperTeamInvite = 401, /** 超大群踢人,{"ids":["a1", "a2"],"user_namecards":["namecard1", "namecard2"], "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */ kNIMNotificationIdSuperTeamKick = 402, /** 退出超大群,{"id" : "a1","user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdSuperTeamLeave = 403, /** 超大群群信息更新,{"team_info":team_info,"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdSuperTeamUpdate = 404, /** 超大群解散,{"user_namecards":["namecard1", "namecard2"]}*/ kNIMNotificationIdSuperTeamDismiss = 405, /** 超大群移交群主,{"id":"a1","uinfos":["uinfo1", "uinfo2"]}*/ kNIMNotificationIdSuperTeamOwnerTransfer = 406, /** 超大群增加管理员,{"ids":["a1","a2"],"uinfos":["uinfo1", "uinfo2"]}*/ kNIMNotificationIdSuperTeamAddManager = 407, /** 超大群删除管理员,{"ids":["a1","a2"],"uinfos":["uinfo1", "uinfo2"]}*/ kNIMNotificationIdSuperTeamRemoveManager = 408, /** 超大群禁言/解禁群成员,{"uinfos":["uinfo1", "uinfo2"],“tinfo”:tinfo,"id":"a1","mute":1-禁言,0-解禁}*/ kNIMNotificationIdSuperTeamMuteMember = 409, /** 超大群申请加入成功,{"tinfo":tinfo,"id":"a1","uinfos":["uinfo1", "uinfo2"]}*/ kNIMNotificationIdSuperTeamApplyPass = 410, /** 超大群接受邀请进群,{"tinfo":tinfo,"id":"a1"}*/ kNIMNotificationIdSuperTeamInviteAccept = 411 } /** @enum NIMMessageType Message Type */ export declare enum NIMMessageType { /** 文本类型消息*/ kNIMMessageTypeText = 0, /** 图片类型消息*/ kNIMMessageTypeImage = 1, /** 声音类型消息*/ kNIMMessageTypeAudio = 2, /** 视频类型消息*/ kNIMMessageTypeVideo = 3, /** 位置类型消息*/ kNIMMessageTypeLocation = 4, /** 系统类型通知(包括入群出群通知等) NIMNotificationId*/ kNIMMessageTypeNotification = 5, /** 文件类型消息*/ kNIMMessageTypeFile = 6, /** 提醒类型消息,Tip内容根据格式要求填入消息结构中的kNIMMsgKeyServerExt字段*/ kNIMMessageTypeTips = 10, /** 波特机器人消息*/ kNIMMessageTypeRobot = 11, /** G2话单消息*/ kNIMMessageTypeG2NetCall = 12, /** 自定义消息*/ kNIMMessageTypeCustom = 100, /** 未知类型消息,本地使用,发送时勿使用,作为默认值*/ kNIMMessageTypeUnknown = 1000 } /** @enum NIMMessageFeature 消息种类 */ export declare enum NIMMessageFeature { /** 默认*/ kNIMMessageFeatureDefault = 0, /** 离线消息*/ kNIMMessageFeatureLeaveMsg = 1, /** 漫游消息*/ kNIMMessageFeatureRoamMsg = 2, /** 同步消息*/ kNIMMessageFeatureSyncMsg = 3, /** 透传消息*/ kNIMMessageFeatureCustomizedMsg = 4 } /** @enum NIMMsgLogStatus 消息状态 */ export declare enum NIMMsgLogStatus { /** 默认,不能当查询条件,意义太多*/ kNIMMsgLogStatusNone = 0, /** 收到消息,未读*/ kNIMMsgLogStatusUnread = 1, /** 收到消息,已读*/ kNIMMsgLogStatusRead = 2, /** 已删*/ kNIMMsgLogStatusDeleted = 3, /** 发送中*/ kNIMMsgLogStatusSending = 4, /** 发送失败*/ kNIMMsgLogStatusSendFailed = 5, /** 已发送*/ kNIMMsgLogStatusSent = 6, /** 对方已读发送的内容*/ kNIMMsgLogStatusReceipt = 7, /** 草稿*/ kNIMMsgLogStatusDraft = 8, /** 发送取消*/ kNIMMsgLogStatusSendCancel = 9, /** 被对方拒绝,比如被对方加入黑名单等等*/ kNIMMsgLogStatusRefused = 10 } /** @enum NIMMsgLogSubStatus 消息子状态 */ export declare enum NIMMsgLogSubStatus { /** 默认状态*/ kNIMMsgLogSubStatusNone = 0, /** 未播放*/ kNIMMsgLogSubStatusNotPlaying = 20, /** 已播放*/ kNIMMsgLogSubStatusPlayed = 21 } /** @enum NIMMsgLogQueryRange 消息历史的检索范围 */ export declare enum NIMMsgLogQueryRange { /** 指定的个人(点对点会话)(注意:暂不支持指定多个人的检索!)*/ kNIMMsgLogQueryRangeP2P = 0, /** 指定的群组(注意:暂不支持指定多个群组的检索!)*/ kNIMMsgLogQueryRangeTeam = 1, /** 指定的超大群组(注意:暂不支持指定多个群组的检索!)*/ kNIMMsgLogQueryRangeSuperTeam = 5, /** 全部*/ kNIMMsgLogQueryRangeAll = 100, /** 所有个人会话*/ kNIMMsgLogQueryRangeAllP2P = 101, /** 所有群组*/ kNIMMsgLogQueryRangeAllTeam = 102, /** 所有超大群组*/ kNIMMsgLogQueryRangeAllSuperTeam = 103, /** 未知(如指定个人和群组的集合)(注意:暂不支持指定个人和群组的混合检索!)*/ kNIMMsgLogQueryRangeUnknown = 200 } /** @enum NIMMsglogSearchDirection 消息历史查询方向 */ export declare enum NIMMsglogSearchDirection { /** 以时间点为准向前搜索 */ kForward = 0, /** 以时间点为准向后搜索 */ kBackward = 1 } export declare enum NIMMsglogSearchSegmentEngine { /** 不使用分词逻辑 */ kSegmentEngineDefault = 0, /** 单字分词逻辑,默认 */ kSegmentEngineSimple = 1, /** Jieba 分词,使用 HMM 模型 */ kSegmentEngineJiebaCutWithHMM = 2, /** Jieba 分词,不使用 HMM 模型 */ kSegmentEngineJiebaCutWithoutHMM = 3, /** Jieba 分词,使用全模式 */ kSegmentEngineJiebaCutAll = 4, /** Jieba 分词,搜索引擎模式 */ kSegmentEngineJiebaCutForSearch = 5, /** Jieba 分词,使用 HMM 模型 */ kSegmentEngineJiebaCutHMM = 6 } export declare enum NIMBuildingMsglogIndexesCompleteReason { /** 构建消息索引表完成 */ kBuildingMsglogIndexesCompleted = 0, /** 用户取消 */ kBuildingMsglogIndexesCanceled = 1, /** 构建失败 */ kBuildingMsglogIndexesError = 2, /** 磁盘空间不足 */ kBuildingMsglogIndexesFullDisk = 3, /** 当前正在构建中,请勿频繁操作 */ kBuildingMsglogIndexesInProgress = 4 } /** @enum NIMMsglogQuerySource 消息历史查询来源 */ export declare enum NIMMsglogQuerySource { /** 本地查询*/ kNIMMsglogQuerySourceLocal = 0, /** 云端查询*/ kNIMMsglogQuerySourceServer = 1 } export declare enum BoolStatus { /** 未初始化 */ BS_NOT_INIT = -1, /** false */ BS_FALSE = 0, /** true */ BS_TRUE = 1 } /** @brief AI 数字人消息状态 */ export declare enum NIMAIMessageStatus { /** 默认 */ kNIMMessageAIStatusUnknown = 0, /** 表示是一个艾特数字人的消息 */ kNIMMessageAIStatusAt = 1, /** 表示是数字人响应艾特的消息 */ kNIMMessageAIStatusResponse = 2 } /** @brief AI 流式消息状态 @since v10.8.30 */ export declare enum NIMAIStreamingMessageStatus { /** 流式过程中(本地状态,其他为服务器状态) */ kNIMAIStreamingMessageStreaming = -1, /** 非流式状态 */ kNIMAIStreamingMessageNone = 0, /** 占位 */ kNIMAIStreamingMessagePlaceholder = 1, /** 停止输出 */ kNIMAIStreamingMessageCancelled = 2, /** 停止并更新 */ kNIMAIStreamingMessageUpdated = 3, /** 输出完成 */ kNIMAIStreamingMessageCompleted = 4, /** 服务器异常终止 */ kNIMAIStreamingMessageAborted = 5 } /** @brief AI 流式消息状态 @since v10.9.10 */ export declare enum NIMStreamingMessageStatus { /** 流式过程中(本地状态,其他为服务器状态) */ kNIMAIStreamingMessageStreaming = -1, /** 非流式状态 */ kNIMAIStreamingMessageNone = 0, /** 占位 */ kNIMAIStreamingMessagePlaceholder = 1, /** 停止输出 */ kNIMAIStreamingMessageCancelled = 2, /** 停止并更新 */ kNIMAIStreamingMessageUpdated = 3, /** 输出完成 */ kNIMAIStreamingMessageCompleted = 4, /** 服务器异常终止 */ kNIMAIStreamingMessageAborted = 5 } export interface QueryMsgOnlineAsyncParam { /** 查询id,对方的account id或者群组tid */ id_?: string; /** enum 会话类型,双人0,群组1 (nim_msglog_def.h) */ to_type_?: NIMSessionType; /** number 本次查询的消息条数上限(最多100条) */ limit_count_?: number; /** number 起始时间点,单位:毫秒 */ from_time_?: number; /** number 结束时间点,单位:毫秒 */ end_time_?: number; /** number 结束查询的最后一条消息的server_msg_id(不包含在查询结果中) */ end_msg_id_?: string; /** boolean true:反向查询(按时间正序起查,正序排列),false:按时间逆序起查,逆序排列(建议默认为false) */ reverse_?: boolean; /** boolean 将在线查询结果保存到本地,false: 不保存 */ need_save_to_local_?: boolean; /** boolean 查询结果回来后,如果 need_save_to_local_ 为 true 是否要替换本地已经存在的消息 */ replace_local_message_?: boolean; /** boolean 查询结果回来后,是否需要sdk自动下载消息附件。true:需要,false:不需要 */ auto_download_attachment_?: boolean; /** vector 要获取或排除掉的消息类型 由 is_exclusion_type_ 参数决定 */ msg_type_list_?: Array; /** boolean true : 获取除msg_type_list_中指定的所有类型消息 ,false :只获取 msg_type_list_ 中指定的类型的消息 */ is_exclusion_type_?: boolean; } export interface QueryMsgByKeywordOnlineParam { /** 查询id,对方的account id或者群组tid */ id_?: string; /** 要查询的关键字 */ keyword_?: string; /** enum 会话类型,双人0,群组1 (nim_msglog_def.h) */ to_type_?: NIMSessionType; /** number 本次查询的消息条数上限(最多100条) */ limit_count_?: number; /** number 起始时间点,单位:毫秒 */ from_time_?: number; /** number 结束时间点,单位:毫秒 */ end_time_?: number; /** boolean true:反向查询(按时间正序起查,正序排列),false:按时间逆序起查,逆序排列(建议默认为false) */ reverse_?: boolean; } export interface MessageSetting { /** 该消息是否为重发状态 */ resend_flag_?: BoolStatus; /** 该消息是否存储云端历史 */ server_history_saved_?: BoolStatus; /** 该消息是否支持漫游 */ roaming_?: BoolStatus; /** 该消息是否支持发送者多端同步 */ self_sync_?: BoolStatus; /** 是否需要推送 */ need_push_?: BoolStatus; /** 是否要做消息计数 */ push_need_badge_?: BoolStatus; /** 需要推送昵称 */ push_need_prefix_?: BoolStatus; /** 是否要抄送 */ routable_?: BoolStatus; /** 是否被拉黑 */ is_blacklisted_?: BoolStatus; /** 是否支持离线消息 */ need_offline_?: BoolStatus; /** 第三方自定义的推送属性,长度2048, json object */ push_payload_?: object; /** 自定义推送文案,长度限制200字节 */ push_content_?: string; /** 第三方扩展字段, 长度限制1024 */ server_ext_?: object; /** 本地扩展字段, 格式不限,长度限制1024 */ local_ext_?: string; /** 群组消息强推开关,强推全员设置true并强推列表为空 */ is_force_push_?: BoolStatus; /** 群组消息强推列表 */ force_push_ids_list_?: Array; /** 群组消息强推文本 */ force_push_content_?: string; /** 是否需要过易盾反垃圾 */ anti_spam_enable_?: BoolStatus; /** (可选)开发者自定义的反垃圾字段,长度限制5000 */ anti_spam_content_?: string; /** (可选)户配置的对某些单条消息另外的反垃圾的业务ID */ anti_apam_biz_id_?: string; /** number, (可选) 单条消息是否使用易盾反垃圾 0:(在开通易盾的情况下)不过易盾反垃圾 */ anti_apam_using_yidun_?: number; /** (可选) 是否命中客户端反垃圾 */ client_anti_spam_hitting_?: BoolStatus; /** 群消息是否需要已读业务,0:不需要,1:需要 */ team_msg_need_ack_?: BoolStatus; /** 是否已经发送群消息已读回执 */ team_msg_ack_sent_?: BoolStatus; /** 群消息未读数 */ team_msg_unread_count_?: number; /** (可选) 消息是否需要刷新到session服务,0:否,1:是;只有消息存离线的情况下,才会判断该参数,缺省:1 */ is_update_session_?: BoolStatus; /** (可选)String, 易盾反垃圾增强反作弊专属字段, 限制json,长度限制1024 */ yidun_anti_cheating_?: string; /** (可选)String, 环境变量,用于指向不同的抄送、第三方回调等配置(于8.0.0添加) */ env_config_?: string; /** (可选)String, 易盾反垃圾扩展字段,限制 json,长度限制 1024 */ anti_spam_ext?: string; /** String, 易盾反垃圾返回的结果字段 */ anti_spam_res?: string; } export interface IMMessageThreadInfo { /** 被回复消息的消息发送者 */ reply_msg_from_account_?: string; /** 被回复消息的消息接受者,群的话是tid */ reply_msg_to_account_?: string; /** 被回复消息的消息发送时间 */ reply_msg_time_?: number; /** 被回复消息的消息ID(serverId) */ reply_msg_id_server_?: string; /** 被回复消息的消息ID(clientId) */ reply_msg_id_client_?: string; /** thread消息的消息发送者 */ thread_msg_from_account_?: string; /** thread消息的消息接受者,群的话是tid */ thread_msg_to_account_?: string; /** thread消息的消息发送时间 */ thread_msg_time_?: number; /** thread消息的消息ID(serverId) */ thread_msg_id_server_?: string; /** thread消息的消息ID(clientId) */ thread_msg_id_client_?: string; /** 消息是否已经被删除(可能是撤回,也可能是单向删除),查询thread消息历史时可能会有这个字段,大于0表示已经删除(目前撤回和单向删除都是1,未来可能区分) */ deleted_?: number; } export interface IMMessageRobotInfo { /** 机器人 function */ function_?: string; /** 机器人 topic */ topic_?: string; /** 机器人 custom_content */ custom_content_?: string; /** 机器人 account */ account_?: string; } /** @brief 消息 AI 流式消息分片信息 @since v10.8.30 */ export interface NIMAIStreamingMessageChunk { /** 流式消息回复分片文本 */ content_: string; /** 流式消息时间,即占位消息时间 */ message_time_: number; /** 流式消息当前分片时间 */ chunk_time_: number; /** 类型,当前仅支持 0 表示文本 */ type_: number; /** 分片序号,从 0 开始 */ index_: number; } /** @brief 消息 AI 流式消息分片信息 @since v10.9.10 */ export interface NIMStreamingMessageChunk { /** 流式消息回复分片文本 */ content_: string; /** 流式消息时间,即占位消息时间 */ message_time_: number; /** 流式消息当前分片时间 */ chunk_time_: number; /** 类型,当前仅支持 0 表示文本 */ type_: number; /** 分片序号,从 0 开始 */ index_: number; } /** @brief AI 数字人消息信息 */ export interface IMMessageAIConfig { /** 数字人账号信息,发送消息时指定该字段代表要 @ AI 数字人 */ account_id_: string; /** 数字人消息状态 */ ai_status_: NIMAIMessageStatus; /** 是否是流式消息 @since v10.8.30 */ streaming_: boolean; /** 流式消息状态 @since v10.8.30 */ streaming_message_status_: NIMAIStreamingMessageStatus; /** AI RAG(Retrieval-Augmented Generation) 信息 @since v10.8.30 */ rags_?: Array; /** 流式消息的分片信息 @since v10.8.30 */ chunk_?: NIMAIStreamingMessageChunk; } /** @brief IM 消息通用流式消息配置 @since v10.9.10 */ export interface IMMessageStreamingConfig { /** 是否是流式消息 */ streaming_: boolean; /** 流式消息状态,仅当 streaming_ 为 true 时有效 */ status_: NIMStreamingMessageStatus; /** 流式消息的分片信息,仅当 streaming_ 为 true 时有效 */ chunk_?: NIMStreamingMessageChunk; /** AI RAG(Retrieval-Augmented Generation) 信息 @since v10.9.50 */ rags_?: Array; } export interface IMMessage { /** 错误码 */ rescode_?: NIMResCode; /** 消息属性 */ feature_?: NIMMessageFeature; /** 会话类型 */ session_type_?: NIMSessionType; /** 接收者ID */ receiver_accid_?: string; /** 发送者ID */ sender_accid_?: string; /** 消息时间戳(毫秒) */ timetag_?: number; /** 消息更新时间(毫秒)@since v10.8.30 */ update_timetag_?: number; /** 消息更新者 @since v10.8.30 */ update_accid_?: string; /** 消息内容,长度限制10000 */ content_?: string; /** 消息类型 */ type_?: NIMMessageType; /** 消息附件 ,长度限制10000 */ attach_?: string; /** 消息ID(客户端) */ client_msg_id_?: string; /** 消息属性设置 */ msg_setting_?: MessageSetting; /** 第三方回调回来的自定义扩展字段 v7.8添加 */ third_party_callback_ext_?: string; /** 消息的子类型,客户端定义,服务器透传 */ sub_type_?: number; /** 媒体文件本地绝对路径(客户端) */ local_res_path_?: string; /** 会话ID(客户端) */ local_talk_id_?: string; /** 媒体文件ID(客户端) */ local_res_id_?: string; /** 消息状态(客户端) */ status_?: NIMMsgLogStatus; /** 消息子状态(客户端) */ sub_status_?: NIMMsgLogSubStatus; /** thread消息信息 */ thread_info_?: IMMessageThreadInfo; /** 机器人消息信息 */ robot_info_?: IMMessageRobotInfo; /** AI 数字人消息相关信息 */ ai_config_?: IMMessageAIConfig; /** IM 消息通用流式消息配置 @since v10.9.10 */ streaming_config_?: IMMessageStreamingConfig; /** 发送者客户端类型(只读) */ readonly_sender_client_type_?: NIMClientType; /** 发送者客户端设备ID(只读) */ readonly_sender_device_id_?: string; /** 发送者昵称(只读) */ readonly_sender_nickname_?: string; /** 消息ID(服务器,只读) */ readonly_server_id_?: string; } export interface QueryMsgAsyncParam { /** enum 会话类型,双人0,群组1,超大群5 (nim_msglog_def.h) */ to_type_?: NIMSessionType; /** string 消息的发送方 */ from_account?: string; /** string 消息的接收方 */ to_account?: string; /** number 消息的服务端id */ server_id?: string; /** string 消息的客户端id */ client_id?: string; /** number 消息时间戳 */ time?: number; } export interface QueryThreadHistoryMsgAsyncParam { /** number 起始时间 缺省0 */ from_time?: number; /** number 结束时间 缺省0 */ to_time?: number; /** string 截至消息的服务端id,不包含在查询结果中 缺省0 */ exclude_msg_id?: string; /** number 查询条数限制 缺省100 */ limit?: number; /** number 排序 缺省0 false */ reverse?: number; } /** @enum NIMFullTextSearchRule 全文检索规则 */ export declare enum NIMFullTextSearchRule { /** 降序排列 */ kNIMFullTextSearchOrderByAsc = 1, /** 升序排列 */ kNIMFullTextSearchOrderByDesc = 2, /** 按会话排序 */ kNIMFullTextSearchNoGroupBySession = 4 } export interface FullTextSearchOnlineAsyncParam { /** 要搜索的关键字 */ keyword_?: string; /** 查询的起始时间,0 为从最开始查询 */ from_time_?: number; /** 查询的结束时间 */ to_time_?: number; /** 限制会话的返回数量 */ session_limit_?: number; /** 限制每个会话返回的消息数量 */ msglog_limit_?: number; /** 设置查找规则, 见NIMFullTextSearchRule 例如升序不分组: kNIMFullTextSearchOrderByAsc | kNIMFullTextSearchNoGroupBySession */ search_rule_?: number; /** P2P 会话过滤列表 */ p2p_filter_list_?: Array; /** Team 群租会话过滤列表 */ team_filter_list_?: Array; /** 发送者过滤列表 */ sender_filter_list_?: Array; /** 消息类型过滤 */ msg_type_filter_list_?: Array; /** 消息子类型过滤 */ msg_sub_type_filter_list_?: Array; } export interface QueryMsglogResult { /** 消息历史数 */ count_?: number; /** 消息历史查询来源 */ source_?: NIMMsglogQuerySource; /** 消息历史 */ msglogs_?: Array; } export interface DeleteMsglogSelfNotifyParam { /** 被删除的消息基本信息 */ item_list?: Array; } export interface MessageStatusChangedResult { /** 错误码 */ rescode_?: NIMResCode; /** 结果 */ results_?: Array; } export interface MessageStatusChanged { /** 变更后的状态 */ status_?: NIMMsgLogStatus; /** 会话ID */ talk_id_?: string; /** 临界的消息的时间戳 */ msg_timetag_?: number; } export interface LogsBackupExportInfo { /** 数据库密码 */ encrypt_key_?: string; /** 克隆数据库 */ cloned_?: boolean; } export interface LogsBackupImportInfo { /** 克隆数据库 */ cloned_?: boolean; } export interface DeleteMsglogSelfNotifyItemInfo { /** 会话id */ session_id_?: string; /** 消息ID */ client_id_?: string; /** 自定义字段 */ ext_?: string; } export interface QueryMsgByOptionsAsyncParam { /** 消息历史的检索范围(目前暂不支持某些范围的组合检索,详见NIMMsgLogQueryRange说明) */ query_range_?: NIMMsgLogQueryRange; /** 会话id(对方的account id或者群组tid)的集合,目前暂不支持多个的组合检索,详见NIMMsgLogQueryRange说明 */ ids_?: Array; /** 本次查询的消息条数上限(最多100条) */ limit_count_?: number; /** 起始时间点,单位:毫秒 */ from_time_?: number; /** 结束时间点,单位:毫秒 */ end_time_?: number; /** 结束查询的最后一条消息的end_client_msg_id(不包含在查询结果中) */ end_client_msg_id_?: string; /** true:反向查询(按时间正序起查,正序排列),false:按时间逆序起查,逆序排列(建议默认为false) */ reverse_?: boolean; /** 检索的消息类型(目前只支持kNIMMessageTypeText、kNIMMessageTypeImage和kNIMMessageTypeFile这三种类型消息) */ msg_type_?: NIMMessageType; /** 消息的子类型 */ msg_sub_type_?: number; /** 检索文本(目前只支持kNIMMessageTypeText和kNIMMessageTypeFile这两种类型消息的文本关键字检索,即支持文字消息和文件名的检索 */ search_content_?: string; } export interface GetMessagesResult { /** 操作结果 */ rescode_?: NIMResCode; /** 会话ID */ session_id_?: string; /** 会话类型 */ session_type_?: NIMSessionType; /** 结果是否可信:例如当查询范围不在可信时间段内, 但远端请求失败时, 返回的本地结果可能不完整 */ reliable_?: boolean; /** 历史消息列表 */ messages_?: Array; } export interface QueryMsgByKeywordParam { /** 要查询的关键字 */ keyword_: string; /** 查询id,对方的account id或者群组tid */ account_id_?: string; /** enum 会话类型,双人0,群组1 (nim_msglog_def.h) */ to_type_?: NIMSessionType; /** array 要获取的消息类型,默认只有文本类消息,可自行扩充其他类型消息,除通知类消息不受支持外,其他类型消息(包括自定义消息)均可检索 */ type_: Array; /** number 本次查询的消息条数上限 */ limit_count_?: number; /** number 起始时间点,单位:毫秒 */ from_time_?: number; /** number 结束时间点,单位:毫秒 */ end_time_?: number; /** enum 查询方向 */ direction_?: NIMMsglogSearchDirection; /** enum 分段引擎 */ segment_engine_?: NIMMsglogSearchSegmentEngine; } export type QueryMsgCallback = (rescode: NIMResCode, id: string, to_type: NIMSessionType, result: QueryMsglogResult) => void; export type GetMessagesDynamicallyCallback = (result: GetMessagesResult) => void; export type QuerySingleMsgCallback = (rescode: NIMResCode, id: string, msg: IMMessage) => void; export type ModifyMultipleMsglogCallback = (rescode: NIMResCode, uid: string, to_type: NIMSessionType) => void; export type ModifySingleMsglogCallback = (rescode: NIMResCode, msg_id: string) => void; export type DBFunctionCallback = (rescode: NIMResCode) => void; export type DeleteMsglogSelfNotifyCallback = (result: Array) => void; export type DeleteHistoryMessagesNotifyCallback = (result: Array) => void; export type DeleteMessageSelfAsyncCallback = (rescode: NIMResCode) => void; export type MessageStatusChangedCallback = (result: MessageStatusChangedResult) => void; export type ImportDbPrgCallback = (importedCount: number, totalCount: number) => void; export type DeleteHistoryOnLineAsyncCallback = (rescode: NIMResCode, accid: string) => void; export type DeleteHistoryOnLineAsyncExCallback = (rescode: NIMResCode, accid: string, to_type: number, timestamp: number, jsonExtension: string) => void; export type QueryMessageIsThreadRootCallback = (rescode: NIMResCode, client_id: string, is_root: boolean, reply_count: number) => void; export type QueryMessageOnlineCallback = (rescode: NIMResCode, client_id: string, msg: IMMessage) => void; export type QueryThreadHistoryMsgCallback = (rescode: NIMResCode, root_msg: IMMessage, total: number, last_msg_time: number, msg_array: Array) => void; export type FullTextSearchOnlineAsyncCallback = (rescode: NIMResCode, result: QueryMsglogResult) => void; export type IsMessageIndexEstablishedCallback = (is_established: boolean) => void; export type BuildMsglogIndexesProgress = (total: number, built_count: number) => void; export type BuildMsglogIndexesComplete = (reason: NIMBuildingMsglogIndexesCompleteReason, message: string) => void; export type HistoryMessageFilter = (result: IMMessage) => boolean; export interface NIMMsgLogAPI { InitEventHandlers(): void; QueryMsgByIDAysnc(clientMsgId: string, cb: QuerySingleMsgCallback | null, jsonExtension: string): boolean; QueryMsgAsync(accid: string, to_type: NIMSessionType, limit_count: number, anchor_msg_time: number, cb: QueryMsgCallback | null, jsonExtension: string): boolean; GetMessagesDynamically(session_id: string, to_type: NIMSessionType, from_time: number, to_time: number, limit_count: number, anchor_client_msg_id: string, anchor_server_msg_id: string, direction: NIMMsglogSearchDirection, cb: GetMessagesDynamicallyCallback | null, jsonExtension: string): void; QueryMsgOnlineAsync(param: QueryMsgOnlineAsyncParam, cb: QueryMsgCallback | null): boolean; QueryMsgByKeywordOnlineAsync(param: QueryMsgByKeywordOnlineParam, cb: QueryMsgCallback | null): boolean; QueryMsgOfSpecifiedTypeInASessionAsync(to_type: NIMSessionType, id: string, limit_count: number, fromTime: number, endTime: number, endClientMsgId: string, reverse: boolean, msgType: Array, cb: QueryMsgCallback | null, jsonExtension: string): boolean; QueryMsgByOptionsAsync(param: QueryMsgByOptionsAsyncParam, cb: QueryMsgCallback | null): boolean; BatchStatusReadAsync(accid: string, to_type: NIMSessionType, cb: ModifyMultipleMsglogCallback | null, jsonExtension: string): boolean; BatchStatusDeleteAsync(accid: string, to_type: NIMSessionType, revert_by_query_online: boolean, cb: ModifyMultipleMsglogCallback | null, jsonExtension: string): boolean; SetStatusAsync(msg_id: string, status: NIMMsgLogStatus, cb: ModifySingleMsglogCallback | null, jsonExtension: string): boolean; SetSubStatusAsync(msg_id: string, status: NIMMsgLogSubStatus, cb: ModifySingleMsglogCallback | null, jsonExtension: string): boolean; WriteMsglogToLocalAsync(talkId: string, msg: IMMessage, needUpdateSession: boolean, composeLastMsg: boolean, excludeMsgType: Array, cb: ModifySingleMsglogCallback | null): boolean; DeleteBySessionTypeAsync(delSessions: boolean, to_type: NIMSessionType, revert_by_query_online: boolean, cb: ModifyMultipleMsglogCallback | null, jsonExtension: string): boolean; DeleteAsync(session_id: string, to_type: NIMSessionType, msg_id: string, cb: ModifySingleMsglogCallback | null, jsonExtension: string): boolean; DeleteAllAsync(del_session: boolean, revert_by_query_online: boolean, cb: DBFunctionCallback | null, jsonExtension: string): boolean; DeleteMsgByTimeAsync(session_id: string, to_type: NIMSessionType, revert_by_query_online: boolean, timestamp1: number, timestamp2: number, cb: DBFunctionCallback | null, jsonExtension: string): boolean; ExportDbAsync(dst_path: string, cb: DBFunctionCallback | null, jsonExtension: string): boolean; ImportDbAsync(src_path: string, db_cb: DBFunctionCallback, prg_cb: ImportDbPrgCallback | null, jsonExtension: string): boolean; SendReceiptAsync(msg: IMMessage, cb: MessageStatusChangedCallback | null): void; QuerySentMessageBeReaded(msg: IMMessage): boolean; QueryReceivedMsgReceiptSent(msg: IMMessage): boolean; UpdateLocalExtAsync(msg_id: string, local_ext: string, cb: ModifySingleMsglogCallback | null, jsonExtension: string): boolean; ReadAllAsync(cb: DBFunctionCallback | null, jsonExtension: string): boolean; ExportBackupToRemote(export_info: LogsBackupExportInfo): boolean; ImportBackupToRemote(export_info: LogsBackupImportInfo): boolean; CancelImportBackupFromRemote(): void; CancelExportBackupToRemote(): void; DeleteHistoryOnlineAsync(accid: string, delete_roaming: boolean, jsonExtension: string, cb: DeleteHistoryOnLineAsyncExCallback | null): void; DeleteHistoryOnlineAsyncEx(accid: string, to_type: number, needs_notify_self: boolean, jsonExtension: string, cb: DeleteHistoryOnLineAsyncExCallback | null): void; DeleteMessageSelfAsync(msg: IMMessage, ext: string, cb: DeleteMessageSelfAsyncCallback | null): void; QueryMessageIsThreadRoot(client_id: string, cb: QueryMessageIsThreadRootCallback | null): void; QueryMessageOnline(param: QueryMsgAsyncParam, cb: QueryMessageOnlineCallback | null): void; QueryThreadHistoryMsg(msg: IMMessage, param: QueryThreadHistoryMsgAsyncParam, cb: QueryThreadHistoryMsgCallback | null): void; QueryLocalThreadHistoryMsg(msg: IMMessage, cb: QueryMsgCallback | null): void; FullTextSearchOnlineAsync(param: FullTextSearchOnlineAsyncParam, cb: FullTextSearchOnlineAsyncCallback | null): void; QueryMessagesByKeywordAsync(param: QueryMsgByKeywordParam, cb: QueryMsgCallback | null): void; IsMessageIndexEstablished(cb: IsMessageIndexEstablishedCallback | null): void; BuildMsglogIndexes(page_size: number, progress: BuildMsglogIndexesProgress | null, complete: BuildMsglogIndexesComplete | null): void; CancelMsglogIndexesBuilding(): void; RegHistoryMessageFilterCb(cb: HistoryMessageFilter | null): void; }