@22g/netease-im-web-sdk
Version:
typescript netease-im-web-sdk
1,028 lines (859 loc) • 87.2 kB
TypeScript
import { AnyIndexObject, ArrayOr, Identity, NullOr, PickKeysIncludeVal } from '@22g/utility-types';
import { NIMBasicMessage, NIMMessage, NIMMessageType, NIMSceneType } from './NIM/Message';
import { NIMAsyncFunc, NIMAsyncFuncOptions, NIMAsyncFuncPromiseify, NIMAudioFile, NIMError } from './NIM/Basic';
import { NIMSystemMessage, NIMSystemMessageCategory } from './NIM/SystemMessage';
import { NIMSession } from './NIM/Session';
import { NIMLoginPort } from './NIM/LoginPort';
import { NIMUser } from './NIM/User';
import { NIMRelation } from './NIM/Relation';
import { NIMFriend } from './NIM/Friend';
import { NIMUtils } from './NIM/Utils';
import { NIMTeamMember } from './NIM/TeamMember';
import { NIMTeam } from './NIM/Team';
import { NIMInitConf } from './NIM/InitConf';
import * as AsyncFuncOpts from './NIM/AsyncFuncOptions';
export * from './NIM/ChatroomInfo';
export * from './NIM/ChatroomMember';
export * from './NIM/ChatroomMessage';
export * from './NIM/SuperTeam';
export * from './NIM/SuperTeamMember';
export * from './NIM/LoginPort';
export * from './NIM/User';
export * from './NIM/Message';
export * from './NIM/Basic';
export * from './NIM/AsyncFuncOptions';
export * from './NIM/SystemMessage';
export * from './NIM/Session';
export * from './NIM/Relation';
export * from './NIM/Friend';
export * from './NIM/Utils';
export * from './NIM/TeamMember';
export * from './NIM/Team';
export * from './NIM/InitConf';
export * from './NIM/MsgEvent';
/** 当前云信SDK版本 */
export type VERSION = '8.1.0';
declare namespace NIM {
}
export default class NIM {
/**
* 此接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个实例
* - 后续调用此接口会直接返回初始化过的实例, 同时也会调用接口setOptions更新传入的配置
* - 后续调用此接口时, 如果连接已断开, 会自动建立连接
* - 当发生掉线时,SDK会自动进行重连
*/
static getInstance(initConf: NIMInitConf): NIM;
static support: {
/** 是否支持IndexedDB */
db: boolean;
};
static blob: {
/** 将包含 MIME type 和 base64 数据的 data URL 转换为 Blob 对象 */
fromDataURL(dataUrl: string): Blob,
};
/**
* NIM 自带的工具函数
* - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/util.html)
*/
static util: NIMUtils;
/**
* SDK版本信息
*/
static info: {
hash: string;
nrtcSdkVersion: string;
nrtcVersion: string;
protocolVersion: number;
sdkVersion: string;
shortHash: string;
version: string;
};
constructor(initConf: NIMInitConf);
public info: typeof NIM['info'];
/** 判断是否已连接 */
public isConnected(): boolean;
/**
* [🔗接受入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#acceptTeamInvite__anchor)
* @param options [[NIMAcceptTeamInviteOpts]]
* - 高级群的群主和管理员在邀请成员加入群(通过操作[[NIM.createTeam|`创建群`]]或[[NIM.addTeamMembers|`拉人入群`]])之后, 被邀请的人会收到一条类型为`'teamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为邀请方的帐号, `to`字段的值为对应的群ID, 此类系统通知的`attach`有一个字段team的值为被邀请进入的[[NIMTeam|`群`]], 被邀请的人可以选择接受邀请或者拒绝邀请
* + 如果[[NIM.acceptTeamInvite|`接受入群邀请`]], 那么该群的所有群成员会收到一条类型为`'acceptTeamInvite'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为接受入群邀请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]], `attach`有一个字段`members`的值为接收入群邀请的群成员列表。
* + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么邀请你的人会收到一条类型为`'rejectTeamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝入群邀请的人的帐号, `to`字段的值为对应的群ID
*/
public acceptTeamInvite: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAcceptTeamInviteOpts>>;
/**
* 直接加为好友
* @param options [[NIMAddFriendOpts]]
* - [[NIM.addFriend|`直接加某个用户为好友`]]后, 对方不需要确认, 直接成为当前登录用户的好友。
* -对方会收到一条类型为`'addFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号。
*/
public addFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddFriendOpts>>;
/**
* [🔗 拉人入超大群,无需对方同意](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addSuperTeamMembers__anchor)
* - [[NIM.addTeamMembers|`拉人入群`]], 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为[[NIM.addSuperTeamMembers|`'addSuperTeamMembers'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为邀请者的帐号, `to`字段的值为对应的群ID;`attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]],有一个字段members是被邀请新入群的成员信息数组
*/
public addSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddSuperTeamMembersOpts>>;
/**
* [🔗 添加群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamManagers__anchor)
* - [[addTeamManagers|`添加群管理员`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'addTeamManagers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为添加群管理员的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`accounts`的值为被加为管理员的帐号列表, `attach`有一个字段`members`的值为被加为管理员的群成员列表。
*/
public addTeamManagers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddTeamManagersOpts>>;
/**
* [🔗 拉人入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamMembers__anchor)
* - 普通群, [[NIM.addTeamMembers|`拉人入群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'addTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为拉人的人的帐号,`to`字段的值为对应的群ID,`attach`有一个字段`team`的值为对应的[群对象](#群对象),`attach`有一个字段`accounts`的值为被拉的人的帐号列表,`attach`有一个字段`members`的值为被拉的群成员列表。
* + 被邀请的群成员在有人说话后才能看到该[[NIMTeam|`群`]], 而且会先收到一条类型为`'addTeamMembers'`的[[NIMMessage|`群通知消息`]], 然后会收到其它`群消息`。
* - 高级群的群主和管理员在邀请成员加入群(通过操作[[NIM.createTeam|`创建群`]]或[[NIM.addTeamMembers|`拉人入群`]])之后, 被邀请的人会收到一条类型为`'teamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为邀请方的帐号, `to`字段的值为对应的群ID, 此类系统通知的`attach`有一个字段`team`的值为被邀请进入的[[NIMTeam|`群`]], 被邀请的人可以选择接受邀请或者拒绝邀请。
* + 如果[[NIM.acceptTeamInvite|`接受入群邀请`]], 那么该群的所有群成员会收到一条类型为`'acceptTeamInvite'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为接受入群邀请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`members`的值为接收入群邀请的群成员列表。
* + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么邀请你的人会收到一条类型为`'rejectTeamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝入群邀请的人的帐号, `to`字段的值为对应的群ID。
*/
public addTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddTeamMembersOpts>>;
/**
* [🔗 加入黑名单](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToBlacklist__anchor)
* - 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息
* - SDK内部调用 [[NIM.markInBlacklist]] 来完成实际工作
*/
public addToBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddToBlacklistOpts>>;
/**
* [🔗 加入静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToMutelist__anchor)
* - SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定
* - SDK内部调用[[NIM.markInMutelist|`NIM.markInMutelist`]]来完成实际工作
*/
public addToMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddToMutelistOpts>>;
/**
* [🔗 申请加为好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyFriend__anchor)
* - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请
* + 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, to字段的值为申请方的账号。
* + 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, to字段的值为申请方的账号
*/
public applyFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMApplyFriendOpts>>;
/**
* [🔗 申请入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyTeam__anchor)
* - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。
* + 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段team的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段account包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。
* + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。
*/
public applyTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMApplyTeamOpts>>;
/**
* [🔗 将音频 `url` 转为 mp3](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#audioToMp3__anchor)
* @returns 新的 `url`
*/
public audioToMp3(opts: { url: NIMAudioFile['url'] }): string;
/**
* [🔗 音频转文字](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#audioToText__anchor)
* - 仅支持通过[[NIM.previewFile|`previewFile`]]或者[[NIM.sendFile|`sendFile`]]拿到的音频 url, 或者收到的音频消息的 url
*/
public audioToText: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAudioToTextOpts>>;
/**
* [🔗 高斯模糊图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#blurImage__anchor)
* - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
*/
public blurImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMBlurImageOpts>>;
/**
* [🔗 删除单人会话服务器聊天记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#clearServerHistoryMsgs__anchor)
* -
*/
public clearServerHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMClearServerHistoryMsgsOpts>>;
/**
* [🔗 登录 SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#connect__anchor)
* -
*/
public connect(): void;
/**
* [🔗 创建群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#createTeam__anchor)
* - [[NIMTeam.type|`普通群`]]不可以设置[[NIMTeam.joinMode|`群加入方式`]]
* - [[NIMTeam.type|`高级群`]]的[[NIMTeam.joinMode|`群加入方式`]]默认为`'needVerify'`
* - [[NIMTeam.type|`高级群`]]的[[NIMTeam.inviteMode|`群被邀请模式`]]默认为`'needVerify'`
* - [[NIMTeam.type|`高级群`]]的[[NIMTeam.inviteMode|`群邀请模式`]]默认为`'manager'`
* - [[NIMTeam.type|`高级群`]]的[[NIMTeam.updateTeamMode|`群信息修改权限`]]默认为`'manager'`
* - [[NIMTeam.type|`高级群`]]的[[NIMTeam.updateCustomMode|`群信息自定义字段修改权限`]]默认为`'manager'`
* - [[NIMTeam.type|`普通群`]]被邀请的[[NIMTeamMember|`群成员`]]在有人说话之后才会看到该群, 而且会先收到一条类型为[[NIM.addTeamMembers|`'addTeamMembers'`]]的[[NIMMessage|`群通知消息`]], 然后会收到其它[[NIMMessage|`群消息`]]。
* - [[NIMTeam.type|`高级群`]]被邀请的[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIMSystemMessage.type|`'teamInvite'`]]的[[NIMSystemMessage|`系统通知`]]
* - 接受邀请后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIM.acceptTeamInvite|`'acceptTeamInvite'`]]的[[NIMMessage|`群通知消息`]]。
* - 拒绝邀请后, `群主`会收到一条类型为[[NIM.rejectTeamInvite|`'rejectTeamInvite'`]]的系统通知。
*/
public createTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMCreateTeamOpts>>;
/**
* [🔗 裁剪图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cropImage__anchor)
* - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
* - 从坐标 (x, y) 处截取尺寸为 width*height 的图片, (0, 0) 代表左上角
* - width/height 不能小于0, 如果 width/height 大于图片的原始宽度/高度, 那么将被替换为图片的原始宽度/高度
*/
public cropImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMCropImageOpts>>;
/**
* [🔗 去除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutFriends__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的好友列表
* - 去除时按照 [[NIMFriend.account]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* @returns 去除后的好友数组
*/
public cutFriends<T extends NIMFriend>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 去除消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutMsgs__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的消息列表
* - 去除时按照 [[NIMMessage.idClient]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* - TODO: 云信的文档上没有说明,但实际是存在的
* @returns 去除后的消息数组
*/
public cutMsgs<T extends NIMMessage>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 去除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutSessions__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的会话列表
* - 去除时按照 [[NIMSession.id]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* - TODO: 云信的文档上没有说明,但实际是存在的
* @returns 去除后的会话数组
*/
public cutSessions<T extends NIMSession>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 去除accounts对应的好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutFriendsByAccounts__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的好友列表
* - 去除时按照 [[NIMFriend.account]] 的值去除
* - 此方法内部调用 [[NIM.cutFriends]] 来完成实际工作
* @returns 去除后的好友数组
*/
public cutFriendsByAccounts<T extends NIMFriend>(olds: T[], invalids: ArrayOr<T['account']>): T[];
/**
* [🔗 去除登录端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutLoginPorts__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的登录端列表
* - 去除时按照 [[NIMLoginPort.account]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* @returns 去除后的登录端数组
*/
public cutLoginPorts<T extends NIMLoginPort>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 去除关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutRelations__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的关系列表
* - 去除时按照 [[NIMRelation.account]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* @returns 去除后的关系数组
*/
public cutRelations<T extends NIMRelation>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 去除群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeamMembers__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群成员列表
* - 去除时按照 `id`的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* @returns 去除后的群成员数组
*/
public cutTeamMembers<T extends NIMTeamMember>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeamMembersByAccounts__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群成员列表
* - 去除时按照 [[NIMTeamMember.account]] 的值去除
* - 此方法内部调用 [[NIM.cutTeamMembers]] 来完成实际工作
* @returns 去除后的群成员数组
*/
public cutTeamMembersByAccounts<T extends NIMTeamMember>(olds: T[], invalids: ArrayOr<T['account']>): T;
/**
* [🔗 去除群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeams__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群列表
* - 去除时按照 [[NIMTeamMember.teamId]] 的值去除
* - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作
* @returns 去除后的群数组
*/
public cutTeams<T extends NIMTeam>(old: T[], invalids: ArrayOr<T>): T[];
/**
* [🔗 删除所有本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalMsgs__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
* - 此方法同时会清空所有的会话, 请开发者自己清空内存里面的会话列表
*/
public deleteAllLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteAllLocalMsgsOpts>>;
/**
* [🔗 删除所有本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalSysMsgs__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
*/
public deleteAllLocalSysMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteAllLocalSysMsgsOpts>>;
/**
* [🔗 删除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteFriend__anchor)
* - [[NIM.deleteFriend|`删除好友`]]后, 被删除的人会收到一条类型为`'deleteFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为删除方的帐号, `to`字段的值为被删除方的账号。
*/
public deleteFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteFriendOpts>>;
/**
* [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsg__anchor)
* - 在[[NIM.support|`支持数据库`]]时
* + 如果删除的是对应会话的最后一条消息, 那么对应会话的 `lastMsg` 属性会自动变为变为上一条消息, 同时触发 `onupdatesession` 回调
* + 如果对应的消息不存在, 算成功
* - 如果不[[NIM.support|`支持数据库`]], 算成功
*/
public deleteLocalMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgOpts>>;
/**
* [🔗 删除某个会话的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgs__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
* - 结束时间大于开始时间
* - 如不传开始时间和结束时间,则删除某个会话的所有本地消息 相当于[[NIM.deleteLocalMsgsBySession|`删除某个会话的本地消息`]]
*/
public deleteLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgsOpts>>;
/**
* [🔗 删除某个会话的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgsBySession__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
*/
public deleteLocalMsgsBySession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgsBySessionOpts>>;
/**
* [🔗 删除本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSession__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
* - 在[[NIM.support|`支持数据库`]]时, 删了本地会话之后, 下次同步就同步不到对应的会话
* - 如果对应的会话不存在, 算成功
*/
public deleteLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalSessionOpts>>;
/**
* [🔗 删除本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSysMsg__anchor)
* - 删除 `idServer` 对应的本地系统通知
* - 如果不[[NIM.support|`支持数据库`]], 算成功
* - 如果对应的系统通知不存在, 算成功
*/
public deleteLocalSysMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalSysMsgOpts>>;
/**
* [🔗 删除 teamId 对应的本地群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalTeam__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
* - 如果当前用户还在群里面, 那么会失败
* - 如果对应的群不存在, 算成功
* - 如果传了多个 teamId, 但是当前用户还在某个群里面, 那么会失败, 但是所有用户不在的群都会被删掉
*/
public deleteLocalTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalTeamOpts>>;
/**
* [🔗 撤回消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteMsg__anchor)
* - [[NIM.deleteMsg|`撤回消息`]]后, 消息接收方会收到一条类型为`'deleteMsg'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的 `msg` 为被删除的消息的部分字段。如果是群消息, 那么群里的所有人都会收到这条系统通知. 如果同时在多个端登录了同一个账号, 那么其它端也会收到这条系统通知.
*/
public deleteMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteMsgOpts>>;
/**
* [🔗 删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSession__anchor)
* - 删了服务器上的会话之后, 在不[[NIM.support|`支持数据库`]]时, 下次同步就同步不到对应的会话以及会话对应的漫游消息;
* - 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息
*/
public deleteSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteSessionOpts>>;
/**
* [🔗 批量删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSessions__anchor)
* - 删了服务器上的会话之后, 在不[[NIM.support|`支持数据库`]]时, 下次同步就同步不到对应的会话以及会话对应的漫游消息; 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息
*/
public deleteSessions: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteSessionsOpts>>;
/**
* [🔗 登出 SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#disconnect__anchor)
* -
*/
public disconnect(): void;
/**
* [🔗 解散群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#dismissTeam__anchor)
* - [[NIM.dismissTeam|`解散群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[NIM.dismissTeam|`'dismissTeam'`]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段为解散群的人的帐号, `to`字段的值为被对应的群ID。
*/
public dismissTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDismissTeamOpts>>;
/**
* [🔗 在好友数组里面根据 account 找到对应的好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findFriend__anchor)
* 在好友数组里面根据 `account` 找到对应的好友
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param account 待查找的好友的 account[[NIMFriend.account]]
* @returns 对应的好友或者 null
*/
public findFriend<T extends NIMFriend>(friends: T[], account: T['account']): NullOr<T>;
/**
* [🔗 在消息数组里面根据 idClient 找到对应的消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findMsg__anchor)
* 在消息数组里面根据 `idClient` 找到对应的消息
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param idClient 待查找的消息的 idClient[[NIMMessage.idClient]]
* @returns 对应的消息或者 null
*/
public findMsg<T extends NIMMessage>(msgs: T[], idClient: T['idClient']): NullOr<T>;
/**
* [🔗 在关系数组里面根据 account 找到对应的关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findRelation__anchor)
* 在关系数组里面根据 `account` 找到对应的关系
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param account 待查找的关系的account[[NIMRelation.account]]
* @returns 对应的关系或者 null
*/
public findRelation<T extends NIMRelation>(relations: T[], account: T['account']): NullOr<T>;
/**
* [🔗 在会话数组里面根据 id 找到对应的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findSession__anchor)
* 在会话数组里面根据 `id` 找到对应的会话
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param sessionId 待查找的会话的id[[NIMSession.id]]
* @returns 对应的会话或者 null
*/
public findSession<T extends NIMSession>(sessions: T[], sessionId: T['id']): NullOr<T>;
/**
* [🔗 在系统通知数组里面根据 idServer 找到对应的系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findSysMsg__anchor)
* 在系统通知数组里面根据 `idServer` 找到对应的系统通知
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param idServer 消息serverId[[NIMSystemMessage.idServer]]
* @returns 对应的系统通知或者 null
*/
public findSysMsg<T extends NIMSystemMessage>(sysMsgs: T[], idServer: T['idServer']): NullOr<T>;
/**
* [🔗 在群数组里面根据 teamId 找到对应的群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findTeam__anchor)
* 在群数组里面根据 `teamId` 找到对应的群
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param teamId 群id [[NIMTeam.teamId]]
* @returns 对应的群或者 null
*/
public findTeam<T extends NIMTeam>(teams: T[], teamId: T['teamId']): NullOr<T>;
/**
* [🔗 在群成员数组里面根据 id 找到对应的群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findTeamMember__anchor)
* 在群成员数组里面根据 `id` 找到对应的群成员
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param id 群id [[NIMTeamMember.teamId]]
* @returns 对应的群成员或者 null
*/
public findTeamMember<T extends NIMTeamMember>(members: T[], id: T['teamId']): NullOr<T>;
/**
* [🔗 在名片数组里面根据 account 找到对应的名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findUser__anchor)
* 在名片数组里面根据 `account` 找到对应的名片
* - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作
* @param account 用户账号[[NIMUser.account]]
* @returns 对应的名片或者 null
*/
public findUser<T extends NIMUser>(users: T[], account: T['account']): NullOr<T>;
/**
* [🔗 转发消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#forwardMsg__anchor)
* -
*/
public forwardMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMForwardMsgOpts>>;
/**
* [🔗 获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getAllSuperTeamMembers__anchor)
* 群成员信息体积太大时,会分多次返回,即options.done会被调用多次,回调函数的第二个参数有一个isAll属性,用来标示是否返回完毕
* - 接受入群邀请之后可调用此方法来获取[[NIMSuperTeamMember|`超大群群成员`]]列表
*/
public getAllSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetAllSuperTeamMembersOpts>>;
/**
* [🔗 获取聊天室服务器地址](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getChatroomAddress__anchor)
* - 可以在 IM 连接上获取聊天室服务器地址
*/
public getChatroomAddress: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetChatroomAddressOpts>>;
/**
* [🔗 获取好友列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getFriends__anchor)
* - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了[[NIMInitConf.syncFriends]]为`false`, 那么就收不到 [[NIMInitConf.onfriends]]回调, 可以调用此接口来获取好友列表。
*/
public getFriends: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetFriendsOpts>>;
/**
* [🔗 获取云端历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getHistoryMsgs__anchor)
* - 该接口用于获取一段时间内的历史消息, 由参数`beginTime`和`endTime`来控制时间范围。
* + 当`reverse`为`false`时, 后续查询的`endTime`对应上次查询的最后一条消息的`time`字段
* + 当`reverse`为`true`时, 后续查询的`beginTime`对应上次查询的最后一条消息的`time`字段
* - 如果要搜索历史消息, 请参考`获取包含关键词的历史消息`
*/
public getHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetHistoryMsgsOpts>>;
/**
* [🔗 搜索历史消息(收费API?)](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#searchHistoryMsgs__anchor)
* - TODO: 官方API文档中没有说明
*/
public searchHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSearchHistoryMsgsOpts>>;
/**
* [🔗 获取 idClient 对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgByIdClient__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回 null
*/
public getLocalMsgByIdClient: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgByIdClientOpts>>;
/**
* [🔗 获取本地历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgs__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组
*/
public getLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgsOpts>>;
/**
* [🔗 获取 idClients 对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgsByIdClients__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组
*/
public getLocalMsgsByIdClients: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgsByIdClientsOpts>>;
/**
* [🔗 通过sessionId获取本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSession__anchor)
* - 如果[[NIM.support|`支持数据库`]], 则查找数据库中的对应会话,有则返回会话对象,无则返回 null
* - 如果不[[NIM.support|`支持数据库`]], 则查找之前同步到的会话列表,有则返回会话对象,无则返回 null
*/
public getLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionOpts>>;
/**
* [🔗 获取本地会话列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessions__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组
* - 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面
*/
public getLocalSessions: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionsOpts>>;
/**
* [🔗 获取本地会话列表,开发者可以指定排除lastMsg的类型,比如获取每个会话中非通知类型的消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessionsByMsgType__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 返回空数组
* - 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面
* - 与`getLocalSessions`不同的是,该接口可以排除或指定lastMsg的类型,如当 `excludeType='notification'` 时,返回的session列表是包含非通知类型消息的会话,该会话的lastMsg为最后一条非通知消息
*/
public getLocalSessionsByMsgType: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionsByMsgTypeOpts>>;
/**
* [🔗 获取本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSysMsgs__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组
*/
public getLocalSysMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSysMsgsOpts>>;
/**
* [🔗 获取teamIds对应的本地群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalTeams__anchor)
* - 如果不[[NIM.support|`支持数据库`]], 算成功
*/
public getLocalTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalTeamsOpts>>;
/**
* [🔗 获取群禁言成员列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getMutedTeamMembers__anchor)
* -
*/
public getMutedTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetMutedTeamMembersOpts>>;
/**
* [🔗 获取当前多端推送配置选项](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getPushNotificationMultiportConfig__anchor)
* -
*/
public getPushNotificationMultiportConfig(): { shouldPushNotificationWhenPCOnline: boolean };
/**
* [🔗 获取黑名单和静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getRelations__anchor)
* - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncSuperTeams`为`false`, 那么就收不到`onblacklist`和`onmutelist`回调, 可以调用此接口来获取黑名单和静音列表。
*/
public getRelations: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetRelationsOpts>>;
/**
* [🔗 获取超大群信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeam__anchor)
* - 开发者可以调用此接口根据群ID获取群资料
*/
public getSuperTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamOpts>>;
/**
* [🔗 根据进群时间,分页获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeamMembersByJoinTime__anchor)
* - 接受入群邀请之后可调用此方法来分页获取[[NIMSuperTeamMember|`超大群群成员`]]列表
*/
public getSuperTeamMembersByJoinTime: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamMembersByJoinTimeOpts>>;
/**
* [🔗 获取所在的超大群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeams__anchor)
* - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncSuperTeams`为`false`, 那么就收不到`onSuperTeams`回调, 可以调用此接口来获取[[NIMSuperTeam|`超大群`]]列表
*/
public getSuperTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamsOpts>>;
/**
* [🔗 获取群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeam__anchor)
* - 开发者可以调用此接口获取群资料
*/
public getTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamOpts>>;
/**
* [🔗 通过群ID及成员账号获取群成员信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMemberByTeamIdAndAccount__anchor)
* -
*/
public getTeamMemberByTeamIdAndAccount: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMemberByTeamIdAndAccountOpts>>;
/**
* [🔗 获取群成员的邀请者accid](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMemberInvitorAccid__anchor)
* -
*/
public getTeamMemberInvitorAccid: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMemberInvitorAccidOpts>>;
/**
* [🔗 获取群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMembers__anchor)
* - 如果开发者在[[NIM|`初始化SDK`]]时选择设置了`syncTeamMembers`为`false`, 那么就收不到`onteammembers`回调, 可以调用此方法来获取[[NIMTeamMember|`群成员`]]列表
* - 接受入群邀请之后调用此方法来获取[[NIMTeamMember|`群成员`]]列表
*/
public getTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMembersOpts>>;
/**
* [🔗 查询群组已读、未读账号列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReadAccounts__anchor)
* -
*/
public getTeamMsgReadAccounts: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMsgReadAccountsOpts>>;
/**
* [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReads__anchor)
* -
*/
public getTeamMsgReads: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMsgReadsOpts>>;
/**
* [🔗 获取群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeams__anchor)
* - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncTeams`为`false`, 那么就收不到`onteams`回调, 可以调用此接口来获取[[NIMTeam|`群`]]列表
*/
public getTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamsOpts>>;
/**
* [🔗 获取用户名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUser__anchor)
* -
*/
public getUser: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetUserOpts>>;
/**
* [🔗 获取用户名片数组](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUsers__anchor)
* - 每次最多 150 个
*/
public getUsers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetUsersOpts>>;
/**
* [🔗 插入一条本地会话记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#insertLocalSession__anchor)
* - 如果会话已存在, 那么会返回错误
* - 如果不[[NIM.support|`支持数据库`]], 那么算成功
* - 如果有对应会话的本地历史消息, 那么会更新会话的 `lastMsg` 为最后一条消息
* - 插入成功后, 会触发`onupdatesession`回调
*/
public insertLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMInsertLocalSessionOpts>>;
/**
* [🔗 interlace 图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#interlaceImage__anchor)
* - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
* - 在网络环境较差时, interlace 后的图片会以从模糊到清晰的方式呈现给用户
*/
public interlaceImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMInterlaceImageOpts>>;
/**
* [🔗 查询消息是否被对方读过了](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#isMsgRemoteRead__anchor)
* - 目前只支持`'p2p'`会话
*/
public isMsgRemoteRead(msg: NIMMessage): boolean;
/**
* [🔗 踢当前用户登录的其它端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#kick__anchor)
* -
*/
public kick: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMKickOpts>>;
/**
* [🔗 主动退群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveSuperTeam__anchor)
* - [[NIM.leaveSuperTeam|`主动退群`]]后, 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为[[NIM.leaveSuperTeam|`'leaveSuperTeam'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]]。
*/
public leaveSuperTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMLeaveSuperTeamOpts>>;
/**
* [🔗 主动退群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveTeam__anchor)
* - [[NIM.leaveSuperTeam|`主动退群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIM.leaveTeam|`'leaveTeam'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]]
*/
public leaveTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMLeaveTeamOpts>>;
/**
* [🔗 登出SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#logout__anchor)
* - 在连接正常的情况下,可以调用该方法退出登录,如果您不确定连接是否正常,请使用 [[NIM.connect]]
*/
public logout(): void;
/**
* [🔗 加入黑名单/从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInBlacklist__anchor)
* - 此接口可以完成以下两个功能, 通过参数`isAdd`来决定实际的功能
* - `isAdd`为`true`时, 会将`account`[[NIM.addToBlacklist|`加入黑名单`]]
* - 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息
* - `isAdd`为`false`时, 会将`account`[[NIM.removeFromBlacklist|`从黑名单移除`]]
* -如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息
* - 每个功能SDK都提供了相应的独立接口
*/
public markInBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkInBlacklistOpts>>;
/**
* [🔗 加入静音列表/从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInMutelist__anchor)
* - 此接口可以完成以下两个功能, 通过参数`isAdd`来决定实际的功能
* - `isAdd`为`true`时, 会将`account`[[NIM.addToMutelist|`加入静音列表`]]
* - `isAdd`为`false`时, 会将`account`[[NIM.removeFromMutelist|`从静音列表移除`]]
* - 每个功能SDK都提供了相应的独立接口
*/
public markInMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkInMutelistOpts>>;
/**
* [🔗标记消息为已收到](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markMsgRead__anchor)
* - 如果没有消息、或者支持数据库、或者设置了自动标记, 那么直接返回
* - TODO: 未知返回结果
*/
public markMsgRead<T extends NIMMessage>(msgs: T[]): unknown;
/**
* [🔗 标记系统通知为已收到](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markSysMsgRead__anchor)
* - SDK 在收到系统通知后会更新系统通知未读数, 开发者需要调用此接口来通知 SDK 将某条系统通知标记为已读状态, 标记后会触发`onupdatesysmsgunread`回调
*/
public markSysMsgRead: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkSysMsgReadOpts>>;
/**
* [🔗 合并好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeFriends__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的好友列表
* - 合并时按照 `account` 的值去重,按照 `account` 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeFriends<T extends NIMFriend>(olds: T[], news: T[]): T[];
/**
* [🔗 合并登录端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeLoginPorts__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的登录端列表
* - 合并时按照 [[NIMLoginPort.deviceId]] 的值去重,按照 [[NIMLoginPort.deviceId]] 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeLoginPorts<T extends NIMLoginPort>(olds: T[], news: T[]): T[];
/**
* [🔗 合并消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeMsgs__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的消息列表
* - 合并时按照 [[NIMMessage.idClient]] 的值去重,按照 [[NIMMessage.time]] 的值排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeMsgs<T extends NIMMessage>(olds: T[], news: T[]): T[];
/**
* [🔗 合并消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeRelations__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的关系列表
* - 合并时按照 [[NIMRelation.account]] 的值去重,按照 [[NIMRelation.account]] 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeRelations<T extends NIMRelation>(olds: T[], news: T[]): T[];
/**
* [🔗 合并会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeSessions__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的会话列表
* - 合并时按照 [[NIMSession.id]] 的值去重,按照 [[NIMSession.updateTime]] 的值倒序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeSessions<T extends NIMSession>(olds: T[], news: T[]): T[];
/**
* [🔗 合并系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeSysMsgs__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的系统通知列表
* - 合并时按照 [[NIMSystemMessage.idServer]] 的值去重,按照 [[NIMSystemMessage.idServer]] 的值倒序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeSysMsgs<T extends NIMSystemMessage>(olds: T[], news: T[]): T[];
/**
* [🔗 合并群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeTeamMembers__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的群成员列表
* - 合并时按照 [[NIMTeamMember.teamId]] 的值去重,按照 [[NIMTeamMember.teamId]] 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeTeamMembers<T extends NIMTeamMember>(olds: T[], news: T[]): T[];
/**
* [🔗 合并群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeTeams__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的群列表
* - 合并时按照 [[NIMTeam.teamId]] 的值去重,按照 [[NIMTeam.teamId]] 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeTeams<T extends NIMTeam>(olds: T[], news: T[]): T[];
/**
* [🔗 合并名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeUsers__anchor)
* - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的名片列表
* - 合并时按照 [[NIMUser.account]] 的值去重,按照 [[NIMUser.account]] 的值正序排序
* - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作
*/
public mergeUsers<T extends NIMUser>(olds: T[], news: T[]): T[];
/**
* [🔗 群组禁言](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#muteTeamAll__anchor)
* -
*/
public muteTeamAll: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMuteTeamAllOpts>>;
/**
* [🔗 是否需要群消息通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#notifyForNewTeamMsg__anchor)
* -
*/
public notifyForNewTeamMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMNotifyForNewTeamMsgOpts>>;
/**
* [🔗 修改图片下载的名字](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#packFileDownloadName__anchor)
* -
*/
public packFileDownloadName(opts: { url: string, name: string }): string;
/**
* [🔗 通过好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passFriendApply__anchor)
* - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请
* + 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, `to`字段的值为申请方的账号
* + 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为申请方的账号
*/
public passFriendApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPassFriendApplyOpts>>;
/**
* [🔗 通过入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passTeamApply__anchor)
* - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。
* + 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`account`包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。
* + 如果[[NIM.rejectTeamApply|`拒绝入群申请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。
*/
public passTeamApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPassTeamApplyOpts>>;
/**
* [🔗 预览文件](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#previewFile__anchor)
* - 开发者可以预览文件, 支持以下几种场景
* - 通过参数`fileInput`传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件
* - 通过参数`blob`传入 Blob 对象
* - 通过参数`dataURL`传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob
* - SDK会将文件上传到文件服务器, 然后将拿到的文件对象在`done`回调中传给开发者, 文件对象有以下几种
* - [[NIMImageFile|`图片对象`]]
* - [NIMAudio|`音频对象`]]
* - [NIMVideo|`视频对象`]]
* - [NIMFile|`文件对象`]]
* - 开发者在拿到文件对象之后, 可以调用[[NIM.sendFile|`发送文件消息`]]来发送文件消息。
* - 文件大小限制为最大 100M
* - 高级浏览器会在上传前就检测文件大小
* - IE8/IE9 会在上传完成后检测文件大小
*/
public previewFile: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPreviewFileOpts>>;
/**
* [🔗 处理图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#processImage__anchor)
* 此方法接收一组图片操作, 按操作顺序依次处理图片, 可选的操作包括:
* - [[NIM.qualityImage|`修改图片质量`]]
* - [[NIM.interlaceImage|`interlace图片`]]
* - [[NIM.rotateImage|`旋转图片`]]
* - [[NIM.blurImage|`高斯模糊图片`]]
* - [[NIM.cropImage|`裁剪图片`]]
* - [[NIM.thumbnailImage|`生成缩略图`]]
* - [[NIM.previewFile|`预览文件`]]
* - [[NIM.sendFile|`发送文件消息`]]
* 每个操作所需的参数请参考上面的各个方法, 除了上面方法列出来的参数之外, 每个操作需要提供操作类型, 分别是
* - `'quality'`
* - `'interlace'`
* - `'rotate'`
* - `'blur'`
* - `'crop'`
* - `'thumbnail'`
*/
public processImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMProcessImageOpts>>;
/**
* [🔗 修改图片质量](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#qualityImage__anchor)
* - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
* - 默认图片质量为100, 开发者可以降低图片质量来省流量
*/
public qualityImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMQualityImageOpts>>;
/**
* [🔗 拒绝好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectFriendApply__anchor)
* - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。
* - 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, `to`字段的值为申请方的账号。
* - 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为申请方的账号。
*/
public rejectFriendApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectFriendApplyOpts>>;
/**
* [🔗 拒绝入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamApply__anchor)
* -
*/
public rejectTeamApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectTeamApplyOpts>>;
/**
* [🔗 拒绝入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamInvite__anchor)
* - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。
* - 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`account`包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。
* - 如果[[NIM.rejectTeamApply|`拒绝入群申请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。
*/
public rejectTeamInvite: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectTeamInviteOpts>>;
/**
* [🔗 从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromBlacklist__anchor)
* - 如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息
* - SDK内部调用[[NIM.markInBlacklist|`nim.markInBlacklist`]]来完成实际工作
*/
public removeFromBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveFromBlacklistOpts>>;
/**
* [🔗 从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromMutelist__anchor)
* - SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定
* - SDK内部调用[[NIM.markInMutelist|`NIM.markInMutelist`]]来完成实际工作
*/
public removeFromMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveFromMutelistOpts>>;
/**
* [🔗 踢人出超大群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeSuperTeamMembers__anchor)
* - [[NIM.removeSuperTeamMembers|`踢人出群`]], 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为`'removeSuperTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID;`attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]],有一个字段accounts的是被踢人的账号数组。
*/
public removeSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveSuperTeamMembersOpts>>;
/**
* [🔗 移除群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamManagers__anchor)
* - [[NIM.removeTeamManagers|`移除群管理员`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'removeTeamManagers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为移除群管理员的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`accounts`的值为被移除的管理员的帐号列表, `attach`有一个字段`members`的值为被移除管理员的群成员列表。
*/
public removeTeamManagers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveTeamManagersOpts>>;
/**
* [🔗 踢人出群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamMembers__anchor)
* - [[NIM.removeTeamMembers|`踢人出群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'removeTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为踢人的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`accounts`的值为被踢的人的帐号列表。
*/
public removeTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveTeamMembersOpts>>;
/**
* [🔗 重置当前会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#resetCurrSession__anchor)
* - 重置当前会话后, 所有会话在收到消息之后会更新未读数
*/
public resetCurrSession(): unknown;
/**
* [🔗 重置某个会话的未读数](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#resetSessionUnread__anchor)
* - 如果是已经存在的会话记录, 会将此会话未读数置为 0, 那么会收到`onupdatesession`回调
* - 之后此会话在收到消息之后依然会更新未读数
*/
public resetSessionUnread(sessionId: string): unknown;
/**
* [🔗 旋转图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rotateImage__anchor)
* - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
*/
public rotateImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRotateImageOpts>>;
/**
* [🔗 发送自定义消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomMsg__anchor)
* - 自定义消息是[[NIMMessage.scene|`消息类型`]]的一种
* - 下面的代码用自定义消息实现了`石头剪刀布`游戏
*/
public sendCustomMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendCustomMsgOpts>>;
/**
* [🔗 发送自定义系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomSysMsg__anchor)
* - 开发者可以向其他用户或群发送自定义通知
* - 自定义系统通知和自定义消息的区别如下
* - 自定义消息属于[[NIMMessage|`消息`]], 会存储在云信的消息数据库中, 需要跟其他[[NIMMessage|`消息`]]一同展现给用户。
* - 自定义系统通知属于[[NIMSystemMessage|`系统通知`]], 用于第三方通知自己, 不会存储在云信的数据库中, SDK不会解析这些通知, SDK仅仅负责传递这些通知。
*/
public sendCustomSysMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendCustomSysMsgOpts>>;
/**
* [🔗 发送文件消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendFile__anchor)
* - 文件消息是[[NIMMessage.type|`消息类型`]]的一种
* - 开发者可以直接发送文件消息
* + 支持以下几种场景
* - 通过参数`fileInput`传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件
* - 通过参数`blob`传入 Blob 对象
* - 通过参数`dataURL`传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器���持 Blob
* + SDK会先将文件上传到文件服务器, 然后把拿到的文件对象在`uploaddone`回调中传给用户, 然后将其拼装成文件消息发送出去。
* - 开发者也可以先[[NIM.previewFile|`预览文件`]]来获取文件对象, 然后调用此接口发送文件消息。
* + 通过参数`file`传入文件
* - 直接发送文件消息的话会在`beforesend`回调里面传入SDK生成的`idClient`, 如果先预览文件再发送, 那么此接口会直接返回idClient
* - 参数`type`指定了要发送的文件类型, 包括图片、音频、视频和普通文件, 对应的值分别为`'image'`、`'audio'`、`'video'`和`'file'`, 不传默认为`'file'`。
* - 图片、音频、视频和普通文件的区别在于具体的文件信息不一样,具体字段请参考
* + [图片对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Image.html)
* + [音频对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Audio.html)
* + [视频对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Video.html)
* + [文件对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/File.html)
* + `机器人对象`
* - 文件大小限制为最大100M
* + 高级浏览器会在上传前就检测文件大小
* + IE8和IE9会在上传完成后检测文件大小
*/
public sendFile: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendFile