UNPKG

@22g/netease-im-web-sdk

Version:

typescript netease-im-web-sdk

1,473 lines (1,287 loc) 63.4 kB
import { NIMAsyncFuncOptions, NIMAsyncFuncOptionsSuccessRes, NIMAsyncFuncPromiseify, NIMAudioFile, NIMError, NIMFile, NIMFileType, NIMImageFile, NIMProcessImageType, NIMVideoFile } from './Basic'; import { AnyIndexObject, ArrayOr, LiteralUnion, NullOr, Param1Type, UnionToTuple } from '@22g/utility-types'; import { NIMTeam } from './Team'; import { NIMCustomMessage, NIMFileMessage, NIMGeoMessage, NIMLocalMessageWrapper, NIMMessage, NIMMessageType, NIMSceneType, NIMSendMsgCommon, NIMTextMessage, NIMTipMessage } from './Message'; import { NIMSystemMessage } from './SystemMessage'; import { NIMUser } from './User'; import { NIMFriend } from './Friend'; import { NIMServerSession, NIMSession } from './Session'; import { NIMTeamMember } from './TeamMember'; import { NIMMarkInfo, NIMRelation } from './Relation'; import { NIMSuperTeam } from './SuperTeam'; import { NIMSuperTeamMember } from './SuperTeamMember'; import { NIMLoginPort } from './LoginPort'; import { NIMChatroomInfo } from './ChatroomInfo'; /** * [🔗 接受入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#acceptTeamInvite__anchor) * - [[NIM.acceptTeamInvite|`NIM.acceptTeamInvite`]] */ export interface NIMAcceptTeamInviteOpts extends NIMAsyncFuncOptions { /** 对应的系统通知的 */ idServer: NIMSystemMessage['idServer']; /** 群id */ teamId: NIMTeam['teamId']; /** 邀请方的帐号 */ from: NIMSystemMessage['from']; } /** * [🔗 直接加为好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addFriend__anchor) * - [[NIM.addFriend|`NIM.addFriend`]] */ export interface NIMAddFriendOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}, { friend: T }> { /** 要直接加为好友的账号 */ account: T['account']; /** 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 拉人入超大群,无需对方同意](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addSuperTeamMembers__anchor) * - [[NIM.addSuperTeamMembers|`NIM.addSuperTeamMembers`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMAddSuperTeamMembersOpts<T extends NIMSuperTeamMember = NIMSuperTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 要拉入的账号 */ accounts: Array<T['account']>; } /** * [🔗 添加群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamManagers__anchor) * - [[NIM.addTeamManagers|`NIM.addTeamManagers`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMAddTeamManagersOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 要添加的管理员帐号列表 */ accounts: Array<T['account']>; } /** * [🔗 拉人入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamMembers__anchor) * - [[NIM.addTeamMembers|`NIM.addTeamMembers`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMAddTeamMembersOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 要拉进群的成员的帐号列表 */ accounts: Array<T['account']>; /** 自定义扩展字段,选填,最长512字符,开发者也可以使用JSON格式的字符串来扩展此内容 */ custom?: T['custom']; /** 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 加入黑名单](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToBlacklist__anchor) * - [[NIM.addToBlacklist|`NIM.addToBlacklist`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMAddToBlacklistOpts extends NIMAsyncFuncOptions<{}, NIMMarkInfo<true>> { /** 要加入黑名单的账号 */ account: NIMMarkInfo['account']; } /** * [🔗 加入静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToMutelist__anchor) * - [[NIM.addToMutelist|`NIM.addToMutelist`]] */ export interface NIMAddToMutelistOpts extends NIMAsyncFuncOptions<{}, NIMMarkInfo<true>> { /** 要加入静音列表的账号 */ account: NIMMarkInfo['account']; } /** * [🔗 申请加好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyFriend__anchor) * - [[NIM.applyFriend|`NIM.applyFriend`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMApplyFriendOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}> { account: T['account']; /** 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 申请入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyTeam__anchor) * - [[NIM.applyTeam|`NIM.applyTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMApplyTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 语音转文字](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#audioToText__anchor) * - [[NIM.audioToText|`NIM.audioToText`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMAudioToTextOpts<T extends NIMAudioFile = NIMAudioFile> extends NIMAsyncFuncOptions<{}> { /** 音频 url */ url: T['url']; } /** * [🔗 高斯模糊](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#blurImage__anchor) * - [[NIM.blurImage|`NIM.blurImage`]] */ export interface NIMBlurImageOpts extends NIMAsyncFuncOptions<{}> { url: string; /** 高斯模糊半径, 不包含中心点的像素, 取值范围 [1,50] */ radius?: number; /** 高斯模糊标准差, 不能小于 0 */ sigma?: number; } /** * [🔗 删除单人会话服务器聊天记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#clearServerHistoryMsgs__anchor) * - [[NIM.clearServerHistoryMsgs|`NIM.clearServerHistoryMsgs`]] */ export interface NIMClearServerHistoryMsgsOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}> { /** 对方账号 */ account: T['to']; /** * 是否同时删除漫游 * @default true */ delRoam?: boolean; } /** * [🔗 创建群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#createTeam__anchor) * - [[NIM.createTeam|`NIM.createTeam`]] */ export interface NIMCreateTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions< Pick<T, 'type' | 'name' | 'avatar'> & Partial<Pick<T, 'intro' | 'announcement' | 'joinMode' | 'beInviteMode' | 'inviteMode' | 'updateTeamMode' | 'updateCustomMode' | 'custom'>>, { team: T } > { accounts: Array<NIMUser['account']>; ps?: NIMSystemMessage['ps']; } /** * [🔗 裁剪图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cropImage__anchor) * - [[NIM.cropImage|`NIM.cropImage`]] */ export interface NIMCropImageOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 起点坐标 x, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height */ x: number; /** 起点坐标 y, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height */ y: number; /** 宽度, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height */ width: number; /** 高度, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height */ height: number; } /** * [🔗 删除本地所有消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalMsgs__anchor) * - [[NIM.deleteAllLocalMsgs|`NIM.deleteAllLocalMsgs`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteAllLocalMsgsOpts extends NIMAsyncFuncOptions<{}> { } /** * [🔗 删除本地所有系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalSysMsgs__anchor) * - [[NIM.deleteAllLocalSysMsgs|`NIM.deleteAllLocalSysMsgs`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteAllLocalSysMsgsOpts extends NIMAsyncFuncOptions<{}> { } /** * [🔗 删除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteFriend__anchor) * - [[NIM.deleteFriend|`NIM.deleteFriend`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteFriendOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}> { account: T['account']; /** * 是否删除好友备注 * @default false */ delAlias?: boolean; } /** * [🔗 删除本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsg__anchor) * - [[NIM.deleteLocalMsg|`NIM.deleteLocalMsg`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalMsgOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { /** 待删除的消息 */ msg: T; } /** * [🔗 根据会话ID、起始时间等条件删除本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgs__anchor) * - [[NIM.deleteLocalMsgs|`NIM.deleteLocalMsgs`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalMsgsOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { sessionId: T['sessionId']; /** * 开始时间,毫秒时间戳,默认为负无穷大 * @default -Infinity */ start?: number; /** * 结束时间,毫秒时间戳,默认为无穷大 * @default Infinity */ end?: number; } /** * [🔗 删除某个会话的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgsBySession__anchor) * - [[NIM.deleteLocalMsgsBySession|`NIM.deleteLocalMsgsBySession`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalMsgsBySessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}> { scene: T['scene']; to: T['to']; /** * 是否同时删除本地会话对象中的的lastMsg * @default false */ delLastMsg?: boolean; /** * 是否为标记删除,若为true,则SDK会记录本地清空会话的时间戳,再调用获取历史消息或获取包含关键词的历史消息接口时,便不能再获取到该时间戳之前的消息了 * @default false */ isTag?: boolean; } /** * [🔗 删除本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSession__anchor) * - [[NIM.deleteLocalSession|`NIM.deleteLocalSession`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalSessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}> { id: ArrayOr<T['id']>; } /** * [🔗 删除本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSysMsg__anchor) * - [[NIM.deleteLocalSysMsg|`NIM.deleteLocalSysMsg`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalSysMsgOpts<T extends NIMSystemMessage = NIMSystemMessage> extends NIMAsyncFuncOptions<{}> { idServer: ArrayOr<T['idServer']>; } /** * [🔗 删除teamId对应的本地群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalTeam__anchor) * - [[NIM.deleteLocalTeam|`NIM.deleteLocalTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteLocalTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamId: ArrayOr<T['teamId']>; } /** * [🔗 撤回消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteMsg__anchor) * - [[NIM.deleteMsg|`NIM.deleteMsg`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteMsgOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { /** 待撤回的消息 */ msg: T; /** 自定义推送文案 */ apnsText?: string; /** 第三方自定义的推送属性,限制json字符串,长度最大2048 */ pushPayload?: string; /** 附言 */ ps?: string; } /** * [🔗 删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSession__anchor) * - [[NIM.deleteSession|`NIM.deleteSession`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteSessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}> { scene: T['scene']; to: T['to']; } /** * [🔗 批量删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSessions__anchor) * - [[NIM.deleteSessions|`NIM.deleteSessions`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDeleteSessionsOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}> { sessions: T[]; } /** * [🔗 解散群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#dismissTeam__anchor) * - [[NIM.dismissTeam|`NIM.dismissTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMDismissTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; } /** * [🔗 转发消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#forwardMsg__anchor) * - [[NIM.forwardMsg|`NIM.forwardMsg`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMForwardMsgOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { msg: T; /** 新的场景 */ scene: T['scene']; /** 新的接收方, 对方帐号或者群id */ to: T['to']; } /** * [🔗 获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getAllSuperTeamMembers__anchor) * - [[NIM.getAllSuperTeamMembers|`NIM.getAllSuperTeamMembers`]] */ export interface NIMGetAllSuperTeamMembersOpts<T extends NIMSuperTeamMember = NIMSuperTeamMember> extends NIMAsyncFuncOptions< {}, { /** 是已全部返回 */ isAll: boolean; /** 群成员 */ members: T[]; } > { teamId: T['teamId']; } /** * [🔗 获取聊天室服务器地址](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getChatroomAddress__anchor) * - [[NIM.getChatroomAddress|`NIM.getChatroomAddress`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMGetChatroomAddressOpts<T extends NIMChatroomInfo = NIMChatroomInfo> extends NIMAsyncFuncOptions<{}> { chatroomId: T['id']; } /** * [🔗 获取好友列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getFriends__anchor) * - [[NIM.getFriends|`NIM.getFriends`]] */ export interface NIMGetFriendsOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}, T[]> { } /** * [🔗 搜索历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#searchHistoryMsgs__anchor) * - [[NIM.searchHistoryMsgs]] */ export interface NIMSearchHistoryMsgsOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msgs: T }> { /** 搜索关键词 */ keyword: string; scene: T[]; to: T['to']; } /** * [🔗 获取云端历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getHistoryMsgs__anchor) * - [[NIM.getHistoryMsgs|`NIM.getHistoryMsgs`]] */ export interface NIMGetHistoryMsgsOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msgs: T[] }> { scene: T['scene']; to: T['to']; /** * 开始时间时间戳(ms) * @default 0 */ beginTime?: number; /** * 结束时间时间戳(ms) * @default [服务器的当前时间] */ endTime?: number; /** 上次查询的最后一条消息的 [[NIMMessage.idServer|`NIMMessage.idServer`]],第一次不填 */ lastMsgId?: T['idServer']; /** * 本次查询的消息数量,最多100条 * @default 100 */ limit?: number; /** * - `false`表示从 [[NIMGetHistoryMsgsOpts.endTime|`NIMGetHistoryMsgsOpts.endTime`]] 开始往前查找历史消息; * - `true`表示从 [[NIMGetHistoryMsgsOpts.beginTime|`NIMGetHistoryMsgsOpts.beginTime`]] 开始往后查找历史消息 * @default false */ reverse?: boolean; /** * - `false`表示返回的消息按时间逆序排序; * - `true`表示按时间正序排序 * @default false */ asc?: boolean; /** 消息类型列表,默认全部消息类型 */ msgType?: Array<T['type']>; } /** * [🔗 获取 idClient对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgByIdClient__anchor) * - [[NIM.getLocalMsgByIdClient|`NIM.getLocalMsgByIdClient`]] */ export interface NIMGetLocalMsgByIdClientOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msg: NIMLocalMessageWrapper<T> }> { /** [[NIMMessage.idClient|`NIMMessage.idClient`]] */ idClient: T['idClient']; } /** * [🔗 获取本地历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgs__anchor) * - [[NIM.getLocalMsgs|`NIM.getLocalMsgs`]] */ export interface NIMGetLocalMsgsOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msgs: Array<NIMLocalMessageWrapper<T>> }> { /** 如果提供该参数, 那么查询该会话的消息 */ sessionId?: T['sessionId']; /** * 开始时间 * @default 0 */ start?: number; /** * 结束时间 * @default Infinity */ end?: number; /** * true 表示从 end 开始查, false 表示从 begin 开始查 * @default true */ desc?: boolean; /** * 数量限制 * @default 100 */ limit?: number; /** 消息类型, [indexedDB专用]如果提供该参数, 那么查询该类型的消息 */ type?: T['type']; /** [indexedDB专用]如果提供该参数, 那么查询这几种类型的消息 */ types?: Array<T['type']>; /** [indexedDB专用]如果提供参数, 那么查询匹配该关键词的消息 */ keyword?: string; /** [indexedDB专用]可选参数, 过滤函数, 接收消息对象, 返回 true 表示结果保留该消息 */ filterFunc?(msg: T): boolean; } /** * [🔗 获取 idClients 对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgsByIdClients__anchor) * - [[NIM.getLocalMsgsByIdClients|`NIM.getLocalMsgsByIdClients`]] */ export interface NIMGetLocalMsgsByIdClientsOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msgs: Array<NIMLocalMessageWrapper<T>> }> { /** [[NIMMessage.idClient|`NIMMessage.idClient`]] */ idClients: Array<T['idClient']>; } /** * 通过 sessionId [🔗 获取本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSession__anchor) * - [[NIM.getLocalSession|`NIM.getLocalSession`]] */ export interface NIMGetLocalSessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}, T> { sessionId?: T['id']; } /** * [🔗 获取本地会话列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessions__anchor) * - [[NIM.getLocalSessions|`NIM.getLocalSessions`]] */ export interface NIMGetLocalSessionsOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}, { sessions: T[] }> { /** 上次查询的最后一条会话的id, 第一次不填 */ lastSessionId?: T['id']; /** * 数量 * @default 100 */ limit?: number; /** * - `false` 表示从最近的会话开始往前查找本地会话; * - `true` 表示从第一条会话开始往后查找本地会话 * @default false */ reverse?: boolean; } /** * [🔗 获取本地会话列表,](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessionsByMsgType__anchor) * - [[NIM.getLocalSessionsByMsgType|`NIM.getLocalSessionsByMsgType`]] * - 开发者可以指定排除lastMsg的类型,比如获取每个会话中非通知类型的消息 */ export interface NIMGetLocalSessionsByMsgTypeOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}, { sessions: T[] }> { /** * - lastMsg 要排除的类型,具体参见 [[NIMMessageType|`消息类型`]],如不填,表示lastMsg不排除任何类型 */ exclude?: ArrayOr<NIMMessageType>; } /** * [🔗 获取本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSysMsgs__anchor) * - [[NIM.getLocalSysMsgs|`NIM.getLocalSysMsgs`]] */ export interface NIMGetLocalSysMsgsOpts<T extends NIMSystemMessage = NIMSystemMessage> extends NIMAsyncFuncOptions<{}, { sysMsgs: T[] }> { category?: T['category']; type?: T['type']; /** * - 如果不传, 默认获取所有已读和未读的系统通知 * - 如果传 `true`, 那么只获取已读的系统通知 * - 如果传 `false`, 那么只获取未读的系统通知 */ read?: boolean; /** 上次查询的最后一条系统通知的 [[NIMSystemMessage.idServer|`NIMSystemMessage.idServer`]], 第一次不填 */ lastIdServer?: T['idServer']; /** * 数量 * @default 100 */ limit?: number; /** * - `false` 表示从最近的系统通知开始往前查找本地系统通知 * - `true` 表示从第一条系统通知开始往后查找本地系统通知 * @default false */ reverse?: boolean; } /** * [🔗 获取本地群组](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalTeams__anchor) * - [[NIM.getLocalTeams|`NIM.getLocalTeams`]] */ export interface NIMGetLocalTeamsOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}, { teams: T }> { teamIds: Array<T['teamId']>; } /** * [🔗 获取群禁言成员列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getMutedTeamMembers__anchor) * - [[NIM.getMutedTeamMembers|`NIM.getMutedTeamMembers`]] */ export interface NIMGetMutedTeamMembersOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}, T[]> { teamId: T['teamId']; } /** * [🔗 获取黑名单和静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getRelations__anchor) * - [[NIM.getRelations|`NIM.getRelations`]] */ export interface NIMGetRelationsOpts<T extends NIMRelation = NIMRelation> extends NIMAsyncFuncOptions<{}, { blacklist: T[], mutelist: T[] }> { } /** * [🔗 获取超大群信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeam__anchor) * - [[NIM.getSuperTeam|`NIM.getSuperTeam`]] */ export interface NIMGetSuperTeamOpts<T extends NIMSuperTeam = NIMSuperTeam> extends NIMAsyncFuncOptions<{}, T> { teamId: T['teamId']; } /** * [🔗 根据进群时间,分页获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeamMembersByJoinTime__anchor) * - [[NIM.getSuperTeamMembersByJoinTime|`NIM.getSuperTeamMembersByJoinTime`]] */ export interface NIMGetSuperTeamMembersByJoinTimeOpts<T extends NIMSuperTeamMember = NIMSuperTeamMember> extends NIMAsyncFuncOptions<{}, T[]> { teamId: T['teamId']; /** * 获取在该时间以后进群的群成员 * @default 0 */ joinTime?: number; /** * 数量 * @default 100 */ limit?: number; /** * - `false` 获取joinTime之后进群的群成员,按时间正序排列 * - `true` 获取joinTime之前进群的群成员,按时间逆序排列 * @default false */ reverse?: boolean; } /** * [🔗 获取所在的超大群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeams__anchor) * - [[NIM.getSuperTeams|`NIM.getSuperTeams`]] */ export interface NIMGetSuperTeamsOpts<T extends NIMSuperTeam = NIMSuperTeam> extends NIMAsyncFuncOptions<{}, T[]> { } /** * [🔗 获取群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeam__anchor) * - [[NIM.getTeam|`NIM.getTeam`]] */ export interface NIMGetTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}, T> { teamId: T['teamId']; } /** * [🔗 通过群ID及成员账号获取群成员信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#通过群ID及成员账号获取群成员信息__anchor) * - [[NIM.getTeamMemberByTeamIdAndAccount|`NIM.getTeamMemberByTeamIdAndAccount`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMGetTeamMemberByTeamIdAndAccountOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}, { members: T }> { teamId: T['teamId']; /** 群成员账号 */ account: T['account']; } /** * [🔗 获取群成员的邀请者accid](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#获取群成员的邀请者accid__anchor) * - [[NIM.getTeamMemberInvitorAccid|`NIM.getTeamMemberInvitorAccid`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMGetTeamMemberInvitorAccidOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}, AnyIndexObject> { teamId: T['teamId']; /** 表示需要查询邀请者accid的群成员账号列表,一次最多查200个。当群成员数量小于等于200时为可选参数,不填默认查全部成员;群成员数量大于200时,需要将成员列表分批多次调用此接口查询。 */ accounts: Array<T['account']>; } /** * [🔗 获取群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMembers__anchor) * - [[NIM.getTeamMembers|`NIM.getTeamMembers`]] */ export interface NIMGetTeamMembersOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}, { members: T }> { teamId: T['teamId']; } /** * [🔗 查询群组已读、未读账号列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReadAccounts__anchor) * - [[NIM.getTeamMsgReadAccounts|`NIM.getTeamMsgReadAccounts`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMGetTeamMsgReadAccountsOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}, { members: T }> { teamMsgReceipt: { teamId: T['teamId']; idServer: NIMMessage['idServer']; }; } /** * [🔗 查询群组消息已读、未读数量](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReads__anchor) * - [[NIM.getTeamMsgReads|`NIM.getTeamMsgReads`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMGetTeamMsgReadsOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}, AnyIndexObject> { teamMsgReceipts: Array<{ teamId: T['teamId']; idServer: NIMMessage['idServer']; }>; } /** * [🔗 获取群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeams__anchor) * - [[NIM.getTeams|`NIM.getTeams`]] */ export interface NIMGetTeamsOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}, T[]> { } /** * [🔗 获取用户信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUser__anchor) * - [[NIM.getUser|`NIM.getUser`]] */ export interface NIMGetUserOpts<T extends NIMUser = NIMUser> extends NIMAsyncFuncOptions<{}, T> { account: T['account']; } /** * [🔗 获取用户信息数组](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUsers__anchor) * - [[NIM.getUsers|`NIM.getUsers`]] */ export interface NIMGetUsersOpts<T extends NIMUser = NIMUser> extends NIMAsyncFuncOptions<{}, T[]> { accounts: Array<T['account']>; } /** * [🔗 插入一条本地会话记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#insertLocalSession__anchor) * - [[NIM.insertLocalSession|`NIM.insertLocalSession`]] */ export interface NIMInsertLocalSessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}, { session: T }> { /** 会话场景 */ scene: T['scene']; /** 账号或群ID */ to: T['to']; /** 可选, 会话更新的时间, 如果不填, SDK 会设置一个比当前所有会话更新时间大的一个时间 */ updateTime?: T['updateTime']; } /** * interlace [🔗 图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#interlaceImage__anchor) * - [[NIM.interlaceImage|`NIM.interlaceImage`]] */ export interface NIMInterlaceImageOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 原图 url */ url: string; } /** * [🔗 踢当前用户登录的其它端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#kick__anchor) * - [[NIM.kick|`NIM.kick`]] */ export interface NIMKickOpts<T extends NIMLoginPort = NIMLoginPort> extends NIMAsyncFuncOptions<{}, { deviceIds: Array<T['deviceId']> }> { /** 要踢出的设备id */ deviceIds: Array<T['deviceId']>; } /** * [🔗 主动退超级群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveSuperTeam__anchor) * - [[NIM.leaveSuperTeam|`NIM.leaveSuperTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMLeaveSuperTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}, unknown> { teamId: T['teamId']; } /** * [🔗 主动退群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveTeam__anchor) * - [[NIM.leaveTeam|`NIM.leaveTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMLeaveTeamOpts<T extends NIMSuperTeam = NIMSuperTeam> extends NIMAsyncFuncOptions<{}, unknown> { teamId: T['teamId']; } /** * [🔗 加入黑名单/从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInBlacklist__anchor) * - [[NIM.markInBlacklist|`NIM.markInBlacklist`]] */ export interface NIMMarkInBlacklistOpts extends NIMAsyncFuncOptions<NIMMarkInfo, NIMMarkInfo> { } /** * [🔗 加入静音列表/从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInMutelist__anchor) * - [[NIM.markInMutelist|`NIM.markInMutelist`]] */ export interface NIMMarkInMutelistOpts extends NIMAsyncFuncOptions<NIMMarkInfo, NIMMarkInfo> { } /** * [🔗 标记系统通知为已收到](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markSysMsgRead__anchor) * - [[NIM.markSysMsgRead|`NIM.markSysMsgRead`]] */ export interface NIMMarkSysMsgReadOpts<T extends NIMSystemMessage = NIMSystemMessage> extends NIMAsyncFuncOptions<{}, unknown> { sysMsgs: ArrayOr<T>; } /** * [🔗 群组禁言](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#muteTeamAll__anchor) * - [[NIM.muteTeamAll|`NIM.muteTeamAll`]] */ export interface NIMMuteTeamAllOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 禁言类型 none: 不禁言 normal: 普通成员禁言 all: 全部禁言(包括群主) */ type: T['muteType']; } /** * [🔗 是否需要群消息通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#notifyForNewTeamMsg__anchor) * - [[NIM.notifyForNewTeamMsg|`NIM.notifyForNewTeamMsg`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMNotifyForNewTeamMsgOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamIds: Array<T['teamId']>; } /** * [🔗 通过好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passFriendApply__anchor) * - [[NIM.passFriendApply|`NIM.passFriendApply`]] */ export interface NIMPassFriendApplyOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}, { friend: NIMFriend }> { /** 对应的系统通知的 idServer */ idServer: NIMSystemMessage['idServer']; /** 要通过好友申请的账号 */ account: NIMFriend['account']; /** 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 通过入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passTeamApply__anchor) * - [[NIM.passTeamApply|`NIM.passTeamApply`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMPassTeamApplyOpts extends NIMAsyncFuncOptions<{}> { /** 对应的系统通知的 idServer */ idServer: NIMSystemMessage['idServer']; /** 要通过好友申请的账号 */ teamId: NIMTeam['teamId']; /** 申请方的帐号 */ from: NIMSystemMessage['from']; } /** * [🔗 预览文件](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#previewFile__anchor) * - [[NIM.previewFile|`NIM.previewFile`]] */ export interface NIMPreviewFileOpts extends NIMAsyncFuncOptions<{}, NIMImageFile | NIMVideoFile | NIMAudioFile | NIMFile> { /** 文件过滤器 */ type?: NIMFileType; fileInput?: Param1Type<Document['getElementById']> | HTMLElement; /** 限制文件的大小 */ maxSize?: number; /** 使用普通上传 */ commonUpload?: boolean; /** Blob对象 */ blob?: Blob; /** 包含 MIME type 和 base64 数据的 data URL */ dataURL?: string; uploadprogress?: XMLHttpRequest['onprogress']; /** * 存储场景,不传默认实例化配置 * @default 'im' */ nosScenes?: string; /** 存储有效时间,不传默认实例化配置 不得小于一天,单位`秒` */ nosSurvivalTime?: number; } /** * [🔗 处理图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#processImage__anchor) * - [[NIM.processImage|`NIM.processImage`]] * - TODO: 未完成 */ export interface NIMProcessImageOpts extends NIMAsyncFuncOptions<AnyIndexObject, { url: string }> { /** 原图URL */ url: string; /** 操作序列 */ opts: Array< NIMProcessImageProcessItem<NIMQualityImageOpts, NIMProcessImageType.quality> | NIMProcessImageProcessItem<NIMRotateImageOpts, NIMProcessImageType.rotate> | NIMProcessImageProcessItem<NIMInterlaceImageOpts, NIMProcessImageType.interlace> | NIMProcessImageProcessItem<NIMBlurImageOpts, NIMProcessImageType.blur> | NIMProcessImageProcessItem<NIMCropImageOpts, NIMProcessImageType.crop> | NIMProcessImageProcessItem<NIMThumbnailImageOpts, NIMProcessImageType.thumbnail> >; } type NIMProcessImageProcessItem<O extends NIMAsyncFuncOptions<{}>, T extends NIMProcessImageType> = Omit<O, keyof NIMProcessImageOpts> & { type: T; }; /** * [🔗 修改图片质量](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#qualityImage__anchor) * - [[NIM.qualityImage|`NIM.qualityImage`]] */ export interface NIMQualityImageOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 原图URL */ url: string; /** 图片质量, 必须为整数, 取值范围为 0-100, 此方法内部使用 Math.round 来格式化 quality */ quality: number; } /** * [🔗 拒绝好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectFriendApply__anchor) * - [[NIM.rejectFriendApply|`NIM.rejectFriendApply`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMRejectFriendApplyOpts extends NIMAsyncFuncOptions<{}> { /** 对应的系统通知的 idServer */ idServer: NIMSystemMessage['idServer']; /** 要拒绝好友申请的账号 */ account: NIMFriend['account']; /** 附言, */ ps?: NIMSystemMessage['ps']; } /** * [🔗 拒绝入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamApply__anchor) * - [[NIM.rejectTeamApply|`NIM.rejectTeamApply`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMRejectTeamApplyOpts extends NIMAsyncFuncOptions<{}> { /** 对应的系统通知的 idServer */ idServer: NIMSystemMessage['idServer']; teamId: NIMTeam['teamId']; /** 申请方的帐号 */ from: NIMTeamMember['account']; /** 附言 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 拒绝入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamInvite__anchor) * - [[NIM.rejectTeamInvite|`NIM.rejectTeamInvite`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMRejectTeamInviteOpts extends NIMAsyncFuncOptions<{}> { /** 对应的系统通知的 idServer */ idServer: NIMSystemMessage['idServer']; teamId: NIMTeam['teamId']; /** 邀请方的帐号 */ from: NIMTeamMember['account']; /** 附言 */ ps?: NIMSystemMessage['ps']; } /** * [🔗 从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromBlacklist__anchor) * - [[NIM.removeFromBlacklist|`NIM.removeFromBlacklist`]] */ export interface NIMRemoveFromBlacklistOpts extends NIMAsyncFuncOptions<{}, NIMMarkInfo<false>> { account: NIMMarkInfo['account']; } /** * [🔗 从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromMutelist__anchor) * - [[NIM.removeFromMutelist|`NIM.removeFromMutelist`]] */ export interface NIMRemoveFromMutelistOpts extends NIMAsyncFuncOptions<{}, NIMMarkInfo<false>> { account: NIMMarkInfo['account']; } /** * [🔗 踢人出超级群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeSuperTeamMembers__anchor) * - [[NIM.removeSuperTeamMembers|`NIM.removeSuperTeamMembers`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMRemoveSuperTeamMembersOpts extends NIMAsyncFuncOptions<{}> { teamId: NIMSuperTeamMember['teamId']; /** 要移除的成员帐号列表 */ account: Array<NIMSuperTeamMember['account']>; } /** * [🔗 移除群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamManagers__anchor) * - [[NIM.removeTeamManagers|`NIM.removeTeamManagers`]] */ export interface NIMRemoveTeamManagersOpts extends NIMAsyncFuncOptions<{}> { teamId: NIMTeamMember['teamId']; /** 要移除的管理员帐号列表 */ account: Array<NIMTeamMember['account']>; } /** * [🔗 踢人出群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamMembers__anchor) * - [[NIM.removeTeamMembers|`NIM.removeTeamMembers`]] */ export interface NIMRemoveTeamMembersOpts extends NIMAsyncFuncOptions<{}> { teamId: NIMTeamMember['teamId']; /** 要移除的成员帐号列表 */ account: Array<NIMTeamMember['account']>; } /** * [🔗 旋转图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rotateImage__anchor) * - [[NIM.rotateImage|`NIM.rotateImage`]] */ export interface NIMRotateImageOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 原图Url */ url: string; /** 旋转的角度, 正整数表示顺时针, 负整数表示逆时针, 必须为整数, 此方法内部会先将 angle 格式化为 [0, 360] 范围内的数字, 然后使用 Math.round 来格式化 angle */ angle: number; } /** * [🔗 发送自定义消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomMsg__anchor) * - [[NIM.sendCustomMsg|`NIM.sendCustomMsg`]] */ export interface NIMSendCustomMsgOpts<T extends NIMCustomMessage = NIMCustomMessage> extends NIMAsyncFuncOptions<NIMSendMsgCommon, T> { /** 自定义消息的消息内容, 推荐使用JSON格式构建 */ content: NIMCustomMessage['content']; } /** * [🔗 发送自定义系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomSysMsg__anchor) * - [[NIM.sendCustomSysMsg|`NIM.sendCustomSysMsg`]] */ export interface NIMSendCustomSysMsgOpts<T extends NIMSystemMessage = NIMSystemMessage> extends NIMAsyncFuncOptions< Pick<T, 'scene' | 'to'> & Partial<Pick<T, 'apnsText' | 'pushPayload' | 'cc'>> > { /** 自定义系统通知的内容, 推荐使用JSON格式构建 */ content: string; /** * 是否只发送给在线用户。 * - `true` 时只发送给在线用户, 如果接收方不在线, 这条通知将被丢弃。适合发送即时通知, 比如正在输入。 * - `false` 时假如接收方在线, 那么会立即收到该通知,假如接收方不在线, 会在其上线后推送过去。 * @default true */ sendToOnlineUsersOnly: T['sendToOnlineUsersOnly']; /** * 是否需要推送 * @default true */ isPushable: T['isPushable']; /** * 是否需要推送昵称 * @default false */ needPushNick: T['needPushNick']; } /** * [🔗 发送文件消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendFile__anchor) * - [[NIM.sendFile|`NIM.sendFile`]] */ export interface NIMSendFileOpts<T extends NIMFileMessage = NIMFileMessage> extends NIMAsyncFuncOptions< Omit<NIMPreviewFileOpts, keyof NIMAsyncFuncOptions<{}>> & NIMSendMsgCommon, T > { /** 文件对象, 开发者可以通过 预览文件[[NIM.previewFile|`NIM.previewFile`]] 拿到文件对象 */ file?: NIMAsyncFuncOptionsSuccessRes<NIMPreviewFileOpts>; /** 仅供微信小程序使用, 通过 wx.chooseImage 或者 wx.startRecord 拿到的临时文件路径 */ wxFilePath?: string; /** * 开始上传图片的回调 * - 如果开发者传入 fileInput, 在此回调之前不能修改 fileInput * - 在此回调之后可以取消图片上传, 此回调会接收一个参数 upload, 调用 upload.abort(); 来取消文件上传 */ beginupload?(xhrInst: XMLHttpRequest): void; /** * 上传完成回调 * - 此回调接收两个参数, error 和 obj * - 如果出错, error 包含详细的错误信息 * - 如果上传成功, obj 包含详细的文件信息 */ uploaddone?(error: NullOr<NIMError>, file: NullOr<NIMAsyncFuncOptionsSuccessRes<NIMPreviewFileOpts>>): void; /** 发送文件消息之前的回调函数 */ beforesend?(msg: NIMMessage): void; } /** * [🔗 发送地理位置](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendGeo__anchor) * - [[NIM.sendGeo|`NIM.sendGeo`]] */ export interface NIMSendGeoOpts<T extends NIMGeoMessage = NIMGeoMessage> extends NIMAsyncFuncOptions<NIMSendMsgCommon, T> { geo: T['geo']; } /** * [🔗 发送消息已读回执](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendMsgReceipt__anchor) * - [[NIM.sendMsgReceipt|`NIM.sendMsgReceipt`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMSendMsgReceiptOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { msg: T; } /** * [🔗 发送机器人消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendRobotMsg__anchor) * - [[NIM.sendRobotMsg|`NIM.sendRobotMsg`]] * - TODO: 未知用途,暂不定义 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMSendRobotMsgOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<NIMSendMsgCommon> { } /** * [🔗 标记群组消息已读](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendTeamMsgReceipt__anchor) * - [[NIM.sendTeamMsgReceipt|`NIM.sendTeamMsgReceipt`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMSendTeamMsgReceiptOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}> { teamMsgReceipts: Array<{ teamId: NIMTeam['teamId']; idServer: T['idServer']; }>; } /** * [🔗 发送文本消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendText__anchor) * - [[NIM.sendText|`NIM.sendText`]] */ export interface NIMSendTextOpts<T extends NIMTextMessage = NIMTextMessage> extends NIMAsyncFuncOptions<NIMSendMsgCommon, T> { /** 文本消息内容 */ text: T['text']; } /** * [🔗 发送提醒消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendTipMsg__anchor) * - [[NIM.sendTipMsg|`NIM.sendTipMsg`]] */ export interface NIMSendTipMsgOpts<T extends NIMTipMessage = NIMTipMessage> extends NIMAsyncFuncOptions<NIMSendMsgCommon, T> { /** 提醒内容 */ tip: T['tip']; } /** * [🔗 去除图片元信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#stripImageMeta__anchor) * - [[NIM.stripImageMeta|`NIM.stripImageMeta`]] */ export interface NIMStripImageMetaOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 原图URL */ url: string; } /** * [🔗 生成缩略图](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#thumbnailImage__anchor) * - [[NIM.thumbnailImage|`NIM.thumbnailImage`]] */ export interface NIMThumbnailImageOpts extends NIMAsyncFuncOptions<{}, { url: string }> { /** 原图URL */ url: string; width?: number; height?: number; /** 缩略模式, 目前支持以下三种模式, 请参考上面的描述 */ mode: 'cover' | 'cover' | 'crop'; axis?: { /** 'crop' 模式下控制最后一步裁剪的位置, 请参考上面的描述 */ x?: number; /** 'crop' 模式下控制最后一步裁剪的位置, 请参考上面的描述 */ y?: number; }; /** * 当图片尺寸小于要缩略的尺寸时, 是否放大图片, 默认false不放大 * @default false */ enlarge?: boolean; } /** * [🔗 转让群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#transferTeam__anchor) * - [[NIM.transferTeam|`NIM.transferTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMTransferTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 新群主的帐号 */ account: NIMUser['account']; /** 转让群的同时是否离开群 */ leave: boolean; } /** * [🔗 更新好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateFriend__anchor) * - [[NIM.updateFriend|`NIM.updateFriend`]] */ export interface NIMUpdateFriendOpts<T extends NIMFriend = NIMFriend> extends NIMAsyncFuncOptions<{}, T> { account: T['account']; /** 备注 */ alias: T['alias']; /** 扩展字段, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 */ custom: T['alias']; } /** * [🔗 修改自己的超级群属性](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateInfoInSuperTeam__anchor) * - [[NIM.updateInfoInSuperTeam|`NIM.updateInfoInSuperTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMUpdateInfoInSuperTeamOpts<T extends NIMSuperTeamMember = NIMSuperTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 在群里面的昵称 */ nickInTeam?: T['nickInTeam']; /** 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 */ muteTeam?: T['muteTeam']; /** 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 */ custom?: T['custom']; } /** * [🔗 修改自己的群属性](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateInfoInTeam__anchor) * - [[NIM.updateInfoInTeam|`NIM.updateInfoInTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMUpdateInfoInTeamOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 在群里面的昵称 */ nickInTeam?: T['nickInTeam']; /** 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 */ muteTeam: T['muteTeam']; /** 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 */ custom?: T['custom']; } /** * [🔗 更新本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateLocalMsg__anchor) * - [[NIM.updateLocalMsg|`NIM.updateLocalMsg`]] */ export interface NIMUpdateLocalMsgOpts<T extends NIMMessage = NIMMessage> extends NIMAsyncFuncOptions<{}, { msg?: T }> { idClient: T['idClient']; localCustom?: T['localCustom']; } /** * [🔗 更新本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateLocalSession__anchor) * - [[NIM.updateLocalSession|`NIM.updateLocalSession`]] */ export interface NIMUpdateLocalSessionOpts<T extends NIMSession = NIMSession> extends NIMAsyncFuncOptions<{}, { session?: T }> { id: T['id']; localCustom?: T['localCustom']; } /** * [🔗 更新本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateLocalSysMsg__anchor) * - [[NIM.updateLocalSysMsg|`NIM.updateLocalSysMsg`]] */ export interface NIMUpdateLocalSysMsgOpts<T extends NIMSystemMessage = NIMSystemMessage> extends NIMAsyncFuncOptions<{}, { sysMsg?: T }> { idServer: NIMSystemMessage['idServer']; /** * 状态 * - TODO: 不清楚是`state`还是`status`,还有文档上面的`'bingo'`是代表什么 */ status?: T['state']; localCustom?: T['localCustom']; } /** * [🔗 更新群成员禁言状态](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateMuteStateInTeam__anchor) * - [[NIM.updateMuteStateInTeam|`NIM.updateMuteStateInTeam`]] * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMUpdateMuteStateInTeamOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; /** 群成员的帐号 */ account: T['account']; /** 是否要禁言 */ mute: T['mute']; } /** * [🔗更新我的名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateMyInfo__anchor) * - [[NIM.updateMyInfo|`NIM.updateMyInfo`]] */ export interface NIMUpdateMyInfoOpts<T extends NIMUser = NIMUser> extends NIMAsyncFuncOptions<Partial<Pick<T, Exclude<keyof NIMUser, 'account' | 'createTime' | 'updateTime'>>>, T> { } /** * [🔗 修改别人的群昵称](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateNickInTeam__anchor) * - [[NIM.updateNickInTeam|`NIM.updateNickInTeam`]] */ export interface NIMUpdateNickInTeamOpts<T extends NIMTeamMember = NIMTeamMember> extends NIMAsyncFuncOptions<{}> { teamId: T['teamId']; account: T['account']; nickInTeam: T['nickInTeam']; } /** * [🔗更新超级群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateSuperTeam__anchor) * - [[NIM.updateSuperTeam|`NIM.updateSuperTeam`]] */ export interface NIMUpdateSuperTeamOpts<T extends NIMSuperTeam = NIMSuperTeam> extends NIMAsyncFuncOptions<Partial<Pick<T, 'name' | 'avatar' | 'intro' | 'announcement' | 'custom'>>, T> { teamId: T['teamId']; } /** * [🔗 更新群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateTeam__anchor) * - [[NIM.updateTeam|`NIM.updateTeam`]] */ export interface NIMUpdateTeamOpts<T extends NIMTeam = NIMTeam> extends NIMAsyncFuncOptions<Partial<Pick<T, 'name' | 'avatar' | 'intro' | 'announcement' | 'joinMode' | 'beInviteMode' | 'inviteMode' | 'updateTeamMode' | 'updateCustomMode' | 'custom'>>, T> { teamId: T['teamId']; } /** * [🔗 预览去除图片元信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#viewImageStripMeta__anchor) * - [[NIM.viewImageStripMeta|`NIM.viewImageStripMeta`]] */ export interface NIMViewImageStripMetaOpts extends NIMStripImageMetaOpts { } /** * [🔗 发布事件](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#publishEvent__anchor) * - [[NIM.publishEvent|`NIM.publishEvent`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMPublishEventOpts extends NIMAsyncFuncOptions<{}> { type: number; value: number; custom?: string; vaildTime: number; sync: boolean; } /** * [🔗 按账号获取指定事件的订阅关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#querySubscribeEventsByAccounts__anchor) * - [[NIM.querySubscribeEventsByAccounts|`NIM.querySubscribeEventsByAccounts`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMQuerySubscribeEventsByAccountsOpts extends NIMAsyncFuncOptions<{}> { type: NIMPublishEventOpts['type']; accounts: string[]; } /** * [🔗 查询指定事件的全部订阅关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#querySubscribeEventsByType__anchor) * - [[NIM.querySubscribeEventsByType|`NIM.querySubscribeEventsByType`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMQuerySubscribeEventsByTypeOpts extends NIMAsyncFuncOptions<{}> { type: NIMPublishEventOpts['type']; } /** * [🔗 订阅事件](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#subscribeEvent__anchor) * - [[NIM.subscribeEvent|`NIM.subscribeEvent`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMSubscribeEventOpts extends NIMAsyncFuncOptions<{}> { type: NIMPublishEventOpts['type']; accounts: string[]; subscribeTime: number; sync: boolean; } /** * [🔗 按账号取消指定事件的订阅关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#unSubscribeEventsByAccounts__anchor) * - [[NIM.unSubscribeEventsByAccounts|`NIM.unSubscribeEventsByAccounts`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMUnSubscribeEventsByAccountsOpts extends NIMAsyncFuncOptions<{}> { type: NIMPublishEventOpts['type']; accounts: string[]; } /** * [🔗 取消指定事件的全部订阅关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#unSubscribeEventsByType__anchor) * - [[NIM.unSubscribeEventsByType|`NIM.unSubscribeEventsByType`]] * - TODO: 未知用途 * - TODO: 文档模糊,未知实际返回结构 */ export interface NIMUnSubscribeEventsByTypeOpts extends NIMAsyncFuncOptions<{}> { type: NIMPublishEventOpts['type']; } /** * [🔗 获取反垃圾词库(收费API)](https://dev.yunxin.163.com/docs/product/IM即时通讯/SDK开发集成/Web开发集成/客户端反垃圾) * - [[NIM.getClientAntispamLexicon]] */ export interface NIMGetClientAntispamLexiconOpts extends NIMAsyncFuncOptions<{}> { } /** * [🔗 获取服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getServerSession__anchor) * - [[NIM.getServerSession]] */ export interface NIMGetServerSessionOpts<T extends NIMServerSession = NIMServerSession> extends NIMAsyncFuncOptions<{}, NIMServerSession> { /** 会话场景 */ scene: NIMSceneType; /** 对方账号或群ID */ to: string; } /** * [🔗 获取服务器会话列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getServerSessions__anchor) * - [[NIM.getServerSessions]] * - 与漫游消息构成的会话列表不同,该列表记录的会话数量更多,超过了漫游列表100条的限制,但列表中的会话没有未读数 */ export interface NIMGetServerSessionsOpts<T extends NIMServerSession = NIMServerSession> extends NIMAsyncFuncOptions<{}, { sessions: T[] }> { /** * 最小的时间戳。0表示之前从未请求过。如果之前拉取过会话,可以填写上次的时间戳,拉取自上次之后更新的会话 * @default 0 */ minTimestamp?: number; /** * 最大的时间戳。默认是当前时间,表示拉取最新的会话。拉取第一页之后的会话时,填写上一页最后一条会话的更新时间 */ maxTimestamp?: number; /** * 是否需要lastMsg * @default true */ needLastMsg?: boolean; /** * 返回的最大条数,最大100,剩余的可分页获取 * @default 100 */ limit?: number; } /** * [🔗 更新服务器上某个会话的扩展字段](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#updateServerSession__anchor) * - [[NIM.updateServerSession]] */ export interface NIMUpdateServerSessionOpts extends NIMAsyncFuncOptions<{}> { /** 会话场景 */ scene: NIMSceneType; /** 对方账号或群ID */ to: string; /** 要更新的扩展字段 */ extra: string; } /** * [🔗 删除服务器上会话列表中的一些会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteServerSessions__anchor) * - [[NIM.deleteServerSessions]] * - 删除后不可恢复,其他端也不能再拉取到,直至会话重新被产生 * - 删除漫游消息产生的会话请使用删除会话或批量删除会话 */