wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
1,283 lines (1,282 loc) • 71.4 kB
TypeScript
export class WfcManager {
/**
* 事件通知,{@link EventType}中定义的事件,都会采用本{@link eventEmitter} 通知
* @type {module:events.internal.EventEmitter}
*/
eventEmitter: any;
/**
* 初始化,请参考本demo的用法
* 只可以在主窗口调用,其他窗口调用应当调用{@link attach}
* @param {[]} args,pc 时,传入[node实例]; web 时,可以传入Config配置对象,配置项,请参考{@link Config}
*/
init(args?: []): void;
/**
* 注册新的自定义消息
*
* @param {string} name
* @param {number} flag 用来标识本消息是否需要存储、计数等,{@link PersistFlag}
* @param {number} type 消息类型,{@link MessageContentType}
* @param {class} clazz 消息对应的class
*/
registerMessageContent(name: string, flag: number, type: number, clazz: class): void;
/**
* 获取clientId,获取用户token时,一定要通过调用此方法获取clientId,否则会连接失败。
* @returns {string} clientId
*/
getClientId(): string;
/**
* 获取协议栈版本号
*/
getProtoRevision(): any;
useSM4(): void;
/**
* 连接服务器
* @param {string} userId 用户id
* @param {string} token 用户token,生成token时,所使用的clientId,一定要通过{@link getClientId}获取
* @return {number} 返回上一次活动时间。如果间隔时间较长,可以加个第一次登录的等待提示界面,在等待时同步所有的用户信息/群组信息/频道信息等。
*/
connect(userId: string, token: string): number;
/**
* 设置第三方推送设备token
* @param {number} pushType 推送类型,0-5 移动端已经使用了。
* @param {String} token 设备token
*/
setDeviceToken(pushType: number, token: string): void;
/**
* 断开连接。当切换用户时,需要先断开连接,等待几秒钟后再调用connect连接新用户。
*/
disconnect(): void;
/**
* 设置包名。
* @param {String} packageName 包名
*
*/
setPackageName(packageName: string): void;
/**
* 获取当前用户的id
* @returns {string} 当前用户的id
*/
getUserId(): string;
/**
* 服务器时间和本地时间的差值
* @returns {number} 服务器时间和本地时间的差值
*/
getServerDeltaTime(): number;
/**
* 截图,
* @returns {string} 成功返回'done',同时,图片保存到了系统剪贴板
*/
screenShot(): string;
/**
* 是否成功登录
* @returns {boolean}
*/
isLogin(): boolean;
/**
* 获取连接状态
* @returns {number} 连接状态,参考{@link ConnectionStatus}
*/
getConnectionStatus(): number;
/**
* 设置网络策略,仅专业版支持
* @param {int} strategy 网络策略。0 是自动选择;1 选择主网络;2选择备用网络
*
*/
setBackupAddressStrategy(strategy: int): void;
/**
* 设置备选网络信息,仅专业版支持
* @param {String} backupHost 备选网络主机地址
* @param {int} backupPort 备选网络主机端口
*/
setBackupAddress(backupHost: string, backupPort: int): void;
/**
* 已废弃,请使用{@link getFavGroupList}
* 获取我保存到通讯录的群组信息列表
* @returns {[GroupInfo]} 参考{@link GroupInfo}
*/
getMyGroupList(): [GroupInfo];
/**
* 获取我保存到通讯录的群组信息列表
* @returns {[GroupInfo]} 参考{@link GroupInfo}
*/
getFavGroupList(): [GroupInfo];
/**
* 获取用户的displayName
* @param {string} userId 用户id
* @returns {string} 用户displayName
*/
getUserDisplayName(userId: string): string;
/**
* 获取用户在群里面的displayName
* @param {string} groupId 群id
* @param {string} userId 用户id
* @param {boolean} ignoreFriendAlias 是否忽略好友备注
* @returns {string} 用户在群里面的displayName
*/
getGroupMemberDisplayName(groupId: string, userId: string, ignoreFriendAlias?: boolean): string;
/**
* 获取用户的displayName
* @param {UserInfo} userInfo 用户信息
* @returns {string} 用户的displayName
*/
getUserDisplayNameEx(userInfo: UserInfo): string;
/**
* 获取用户的displayName
* @param {UserInfo} userInfo 用户信息
* @param {boolean} ignoreFriendAlias 是否忽略好友备注。
* @returns {string} 用户的displayName
*/
getGroupMemberDisplayNameEx(userInfo: UserInfo, ignoreFriendAlias?: boolean): string;
/**
* 获取用户信息
* @param {string} userId 用户id
* @param {boolean} refresh 是否刷新用户信息,如果刷新的话,且用户信息有更新,会通过{@link eventEmitter}进行通知,事件的名字是{@link EventType.UserInfosUpdate }
* @param {string} groupId
* @returns {UserInfo}
*/
getUserInfo(userId: string, refresh?: boolean, groupId?: string): UserInfo;
/**
* 获取用户信息
* @param {string} userId 用户ID
* @param {boolean} refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新
* @param {function (UserInfo)} success 成功回调,如果本地有该用户信息,则通过回调返回本地的用户信息;如果本地没有,则从服务端拉取该用户信息,并通过回调返回
* @param {function (number)} fail 失败回调
*/
getUserInfoEx(userId: string, refresh: boolean, success: (arg0: UserInfo) => any, fail: (arg0: number) => any): void;
/**
* 批量从服务端拉取用户信息
* @param {[string]} userIds 用户ids
* @param {function ([UserInfo])} successCB 成功回调
* @param {function (Number)} failCB 失败回调
*/
getUserInfosEx(userIds: [string], successCB: (arg0: [UserInfo]) => any, failCB: (arg0: number) => any): void;
/**
* 批量获取用户信息
* @param {[string]} userIds 用户ids
* @param {string} groupId 群组id
* @returns {[UserInfo]}
*/
getUserInfos(userIds: [string], groupId: string): [UserInfo];
/**
* 服务端搜索用户
* @param {string} keyword 搜索关键字
* @param {number} searchType 搜索类型,可选值参考{@link SearchType}
* @param {number} page 页数,如果searchType是0,每次搜索20个,可以指定page。如果searchType非0,只能搜索一个,page无意义
* @param {function (keyword, [UserInfo])} successCB
* @param {function (number)}failCB
* @returns {Promise<void>}
*/
searchUser(keyword: string, searchType: number, page: number, successCB: (arg0: string, arg1: [UserInfo]) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 服务端搜索用户
* @param {string} domainId 域ID
* @param {string} keyword 搜索关键字
* @param {number} searchType 搜索类型,可选值参考{@link SearchType}
* @param {number} page 页数,如果searchType是0,每次搜索20个,可以指定page。如果searchType非0,只能搜索一个,page无意义
* @param {function (keyword, [UserInfo])} successCB
* @param {function (number)}failCB
* @returns {Promise<void>}
*/
searchUserEx(domainId: string, keyword: string, searchType: number, page: number, successCB: (arg0: string, arg1: [UserInfo]) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 本地搜索好友
* @param keyword 搜索关键字
* @returns {[UserInfo]}
*/
searchFriends(keyword: any): [UserInfo];
/**
* web 端,只匹配群名称和群备注名
* 本地搜索群组
* @param keyword 搜索关键字
* @returns {[GroupSearchResult]}
*/
searchGroups(keyword: any): [GroupSearchResult];
/**
* 获取收到的好友请求
* @returns {[FriendRequest]}
*/
getIncommingFriendRequest(): [FriendRequest];
/**
* 获取发送出去的好友请求
* @returns {[FriendRequest]}
*/
getOutgoingFriendRequest(): [FriendRequest];
/**
* 获取单条好友请求
* @param {string} userId 对方的用户id
* @param {boolean} incoming 是否是收到的好友请求
* @return {FriendRequest|null}
*/
getOneFriendRequest(userId: string, incoming?: boolean): FriendRequest | null;
/**
* 从服务端加载好友请求,如果有更新,会通过{@link eventEmitter}通知
*/
loadFriendRequestFromRemote(): void;
/**
* 获取未读的好友请求数
* @returns {number}
*/
getUnreadFriendRequestCount(): number;
/**
* 清除好友请求未读状态
*/
clearUnreadFriendRequestStatus(): void;
/**
* 删除好友
* @param {string} userId 好友id
* @param {function ()} successCB
* @param {function (number) }failCB
* @returns {Promise<void>}
*/
deleteFriend(userId: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 处理好友请求
* @param {string} userId 发送好友请求的用户的id
* @param {boolean} accept true,接受好友请求;false,拒绝好友请求
* @param {string} extra 一些额外信息,可用来实现好友来源等,推荐使用json格式
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
handleFriendRequest(userId: string, accept: boolean, extra: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 判断用户是否被加入了黑名单
* @param userId
* @returns {boolean}
*/
isBlackListed(userId: any): boolean;
/**
* 获取黑名单
* @returns {[string]}
*/
getBlackList(): [string];
/**
* 设置黑名单
* @param {string} userId 用户id
* @param {boolean} block true,加入黑名单;false,移除黑名单
* @param {function ()} successCB
* @param {function (number)} failCB
*/
setBlackList(userId: string, block: boolean, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 获取好友列表,返回的时好友id数组
* @param {boolean} fresh 是否刷新好友信息,如果刷新,且有更新的话,会通过{@link eventEmitter}通知
* @returns {[string]}
*/
getMyFriendList(fresh?: boolean): [string];
/**
* 好友列表
* @returns {[Friend]}
*/
getFriendList(fresh?: boolean): [Friend];
/**
* 获取好友别名
* @param {string} userId
* @returns {string}
*/
getFriendAlias(userId: string): string;
/**
* 获取好友的Extra信息。
* @param {string} userId
* @returns {string}
*/
getFriendExtra(userId: string): string;
/**
* 设置好友别名
* @param {string} userId 用户id
* @param {string} alias 别名
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setFriendAlias(userId: string, alias: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 创建群组
* @param {string | null} groupId 群组id,一般情况下,传null;如果有自己的用户系统,自己维护群信息,那么可以传群id
* @param {number} groupType 群类型,可参考 {@link GroupType }
* @param {string} name 群名称
* @param {string} portrait 群头像的链接
* @param {string} groupExtra 群组扩展信息
* @param {[string]} memberIds 群成员id列表
* @param {string} memberExtra 群组成员扩展信息
* @param {[number]} lines 会话线路,默认传[0]即可
* @param {CreateGroupNotification} notifyContent 通知信息,默认传null,服务端会生成默认通知
* @param {function (string)} successCB 回调通知群id
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
createGroup(groupId: string | null, groupType: number, name: string, portrait: string, groupExtra: string, memberIds: [string], memberExtra: string, lines: [number], notifyContent: CreateGroupNotification, successCB: (arg0: string) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 设置群管理员
* @param {string} groupId 群id
* @param {boolean} isSet true,设置;false,取消设置
* @param {[string]} memberIds 将被设置为管理或取消管理远的群成员的用户id
* @param {[number]} lines 默认传[0]即可
* @param {Object} notifyContent 默认传null即可
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setGroupManager(groupId: string, isSet: boolean, memberIds: [string], lines: [number], notifyContent: any, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取群信息
* @param {string} groupId 群id
* @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知
* @returns {GroupInfo}
*/
getGroupInfo(groupId: string, refresh?: boolean): GroupInfo;
/**
* 批量获取群信息
* @param {[string]} groupIds 群id
* @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知
* @returns {[GroupInfo]}
*/
getGroupInfos(groupIds: [string], refresh?: boolean): [GroupInfo];
/**
* 获取群信息
* @param {string} groupId 群id
* @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知
* @param {function (GroupInfo)} successCB 成功回调
* @param {function (number)} failCB 失败回调
*/
getGroupInfoEx(groupId: string, refresh: boolean, successCB: (arg0: GroupInfo) => any, failCB: (arg0: number) => any): void;
/**
* 添加群成员
* @param {string} groupId 群组id
* @param {[string]} memberIds 新添加的群成员id
* @param {string} extra 群成员扩展信息
* @param {[number]} notifyLines
* @param {AddGroupMemberNotification} notifyMessageContent
* @param successCB
* @param failCB
*/
addGroupMembers(groupId: string, memberIds: [string], extra: string, notifyLines: [number], notifyMessageContent: AddGroupMemberNotification, successCB: any, failCB: any): void;
/**
* 获取群成员id列表
* @param {string} groupId 群id
* @param {boolean} fresh 是否刷新,刷新时,如果有更新,会通过{@link eventEmitter}通知
* @returns {[string]} 群成员用户id列表
*/
getGroupMemberIds(groupId: string, fresh?: boolean): [string];
/**
* 获取群成员信息
* @param {string} groupId 群id
* @param {boolean} fresh 是否刷新
* @returns {[GroupMember]} 群成员信息
*/
getGroupMembers(groupId: string, fresh?: boolean): [GroupMember];
/**
* 根据群成员类型获取群成员列表
* @param {string} groupId
* @param {number} memberType,可选值参考{@link GroupMemberType}
* @return {[GroupMember]} 群成员列表
*/
getGroupMembersByType(groupId: string, memberType: number): [GroupMember];
/**
* 获取群成员信息
* @param {string} groupId 群id
* @param {boolean} fresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取
* @param {function ([GroupMember])} successCB
* @param {function (number)} failCB
*/
getGroupMembersEx(groupId: string, fresh: boolean, successCB: (arg0: [GroupMember]) => any, failCB: (arg0: number) => any): void;
/**
* 获取单个群成员信息
* @param {string} groupId 群id
* @param {string} memberId 群成员id
* @returns {GroupMember} 群成员信息
*/
getGroupMember(groupId: string, memberId: string): GroupMember;
/**
* 将用户从群里移除
* @param {string} groupId 群id
* @param {[string]} memberIds 将要被移除的群成员id列表
* @param {[]} notifyLines 默认传[0]即可
* @param {KickoffGroupMemberNotification} notifyMsg 默认传null即可
* @param {function ()} successCB
* @param {function (number)} failCB
*/
kickoffGroupMembers(groupId: string, memberIds: [string], notifyLines: [], notifyMsg: KickoffGroupMemberNotification, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 对群成员禁言
* @param {string} groupId 群id
* @param {boolean} isSet true,禁言;false,取消禁言
* @param {[string]} memberIds 群成员id列表
* @param {[number]} notifyLines 默认传[0]即可
* @param {MessageContent} notifyMsg 默认传null即可
* @param {function ()} successCB 成功回调
* @param {function (number)} failCB 失败回调
*/
muteGroupMembers(groupId: string, isSet: boolean, memberIds: [string], notifyLines: [number], notifyMsg: MessageContent, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 群全局禁言之后,允许白名单成员发言
* @param {string} groupId 群id
* @param {boolean} isSet true,加入白名单,允许发言;false,移除白名单,禁止发言
* @param {[string]} memberIds 群成员id列表
* @param {[number]} notifyLines 默认传[0]即可
* @param {MessageContent} notifyMsg 默认传null即可
* @param {function ()} successCB 成功回调
* @param {function (number)} failCB 失败回调
*/
allowGroupMembers(groupId: string, isSet: boolean, memberIds: [string], notifyLines: [number], notifyMsg: MessageContent, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 退出群组
* @param groupId 群id
* @param {[]} lines 默认传[0]即可
* @param {KickoffGroupMemberNotification} notifyMessageContent 默认传null即可
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
quitGroup(groupId: any, lines: [], notifyMessageContent: KickoffGroupMemberNotification, successCB: any, failCB: any): Promise<void>;
/**
* 解散群组
* @param {string} groupId 群组id
* @param {[]} lines 默认传[0]即可
* @param {KickoffGroupMemberNotification} notifyMessageContent 默认传null即可
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
dismissGroup(groupId: string, lines: [], notifyMessageContent: KickoffGroupMemberNotification, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 修改群信息
* @param {string} groupId 群id
* @param {number} type 修改信息所属类型,可选值参考{@link ModifyGroupInfoType}
* @param {string} newValue 准备修改成什么
* @param {[number]} lines
* @param {GroupNotificationContent} notifyMessageContent
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
modifyGroupInfo(groupId: string, type: number, newValue: string, lines: [number], notifyMessageContent: GroupNotificationContent, successCB: any, failCB: any): Promise<void>;
/**
* 修改我在群组的别名
* @param {string} groupId 群id
* @param {string} alias 别名
* @param lines
* @param notifyMessageContent
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
modifyGroupAlias(groupId: string, alias: string, lines: any, notifyMessageContent: any, successCB: any, failCB: any): Promise<void>;
/**
* 修改群成员在群组的别名
* @param {string} groupId 群id
* @param {string} memberId 群成员id
* @param {string} alias 别名
* @param lines
* @param notifyMessageContent
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
modifyGroupMemberAlias(groupId: string, memberId: string, alias: string, lines: any, notifyMessageContent: any, successCB: any, failCB: any): Promise<void>;
/**
* 修改群成员在群组的附加信息
* @param {string} groupId 群id
* @param {string} memberId 群成员id
* @param {string} extra 群成员附加信息
* @param lines
* @param notifyMessageContent
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
modifyGroupMemberExtra(groupId: string, memberId: string, extra: string, lines: any, notifyMessageContent: any, successCB: any, failCB: any): Promise<void>;
/**
* 转移群主
* @param {string} groupId 群id
* @param {string} newOwner 新群主的id
* @param lines
* @param notifyMessageContent
* @param successCB
* @param failCB
*/
transferGroup(groupId: string, newOwner: string, lines: any, notifyMessageContent: any, successCB: any, failCB: any): void;
/**
* 设置群备注
* @param {string} groupId 群id
* @param {string} remark 群备注
* @param successCB
* @param failCB
*/
setGroupRemark(groupId: string, remark: string, successCB: any, failCB: any): Promise<void>;
/**
* 获取群备注
* @param {string} groupId 群id
* @return 群备注
*/
getGroupRemark(groupId: string): any;
/**
* 获取保存到通讯录的群id列表
* @returns {[string]}
*/
getFavGroups(): [string];
/**
* 判断群是否保存到了通讯录
* @param {string} groupId
* @returns {boolean}
*/
isFavGroup(groupId: string): boolean;
/**
* 将群保存到通讯录或移除通讯录
* @param {string} groupId 群id
* @param {boolean} fav true,保存到通讯录;false,从通讯录移除
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setFavGroup(groupId: string, fav: boolean, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取当前用户所有群组ID,此方法消耗资源较大,不建议高频使用。
*
* @param {function ([string])} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
getMyGroups(successCB: (arg0: [string]) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取用户共同群组ID
*
* @param {string} userId
* @param {function ([string])} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
getCommonGroups(userId: string, successCB: (arg0: [string]) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取用户设置,保存格式可以理解为:scope + key => value
* @param {number} scope 命名空间,可选值参考{@link UserSettingScope}
* @param {string} key key
* @returns {string} 设置的key对应的value
*/
getUserSetting(scope: number, key: string): string;
/**
* 获取某个命名空间下的所有设置
* @param scope 命名空间,可选值参考{@link UserSettingScope}
* @returns {Map} key-value
*/
getUserSettings(scope: any): Map<any, any>;
/**
* 设置或更新用户设置
* @param {number} scope 命名空间
* @param {string} key 设置的key
* @param {string} value 设置的value
* @param {function ()} successCB 成功回调
* @param {function (number)} failCB 失败回调
* @returns {Promise<void>}
*/
setUserSetting(scope: number, key: string, value: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 修改个人信息
* @param {[ModifyMyInfoEntry]} modifyMyInfoEntries 需要修改的信息列表,pc端,一次只允许修改一个项。
* @param successCB
* @param failCB
*/
modifyMyInfo(modifyMyInfoEntries: [ModifyMyInfoEntry], successCB: any, failCB: any): void;
/**
* 是否全局免打扰
* @returns {boolean}
*/
isGlobalSlient(): boolean;
/**
* 设置全局免打扰
* @param {boolean} silent
* @param {function ()} successCB
* @param failCB
*/
setGlobalSlient(silent: boolean, successCB: () => any, failCB: any): void;
/**
* 是否隐藏通知详情
* @returns {boolean}
*/
isHiddenNotificationDetail(): boolean;
/**
* 设置或取消设置隐藏通知详情
* @param {boolean} hide 是否隐藏通知详情
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setHiddenNotificationDetail(hide: boolean, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 是否隐藏群成员昵称
* @param {string} groupId 群id
* @returns {boolean}
*/
isHiddenGroupMemberName(groupId: string): boolean;
/**
* 设置或取消设置隐藏群成员昵称
* @param {string} groupId 群id
* @param {boolean} hide 是否隐藏
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setHiddenGroupMemberName(groupId: string, hide: boolean, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 加入聊天室
* @param {string} chatroomId 聊天室id
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
joinChatroom(chatroomId: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 退出聊天室
* @param {string} chatroomId 聊天室id
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
quitChatroom(chatroomId: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取聊天室信息
* @param {string} chatroomId 聊天是id
* @param {number} updateDt 传当前时间对应的毫秒数
* @param {function (ChatRoomInfo)} successCB
* @param failCB
* @returns {Promise<void>}
*/
getChatroomInfo(chatroomId: string, updateDt: number, successCB: (arg0: ChatRoomInfo) => any, failCB: any): Promise<void>;
/**
* 获取聊天室成员信息
* @param {string} chatroomId 聊天室id
* @param {number} maxCount 最多获取多少个聊天室成员信息
* @param {function (ChatRoomMemberInfo)} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
getChatroomMemberInfo(chatroomId: string, maxCount: number, successCB: (arg0: ChatRoomMemberInfo) => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 创建频道
* @param {string} name 频道名称
* @param {string} portrait 频道头像的链接地址
* @param {string} desc 描述
* @param {string} extra 额外信息
* @param {function (string)} successCB 创建成功,会回调通知channelId
* @param {function (number)} failCB
*/
createChannel(name: string, portrait: string, desc: string, extra: string, successCB: (arg0: string) => any, failCB: (arg0: number) => any): void;
/**
* 获取频道信息
* @param {string} channelId 频道id
* @param {boolean} refresh 是否强制刷新
* @returns {ChannelInfo|NullChannelInfo}
*/
getChannelInfo(channelId: string, refresh: boolean): ChannelInfo | NullChannelInfo;
isEnableSecretChat(): boolean;
isUserEnableSecretChat(): boolean;
setUserEnableSecretChat(enable: any, successCB: any, failCB: any): void;
/**
* 修改频道信息
* @param {string} channelId 频道id
* @param {number} type 修改什么,可选值参考{@link ModifyChannelInfoType}
* @param {string} newValue 修改后的值
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
modifyChannelInfo(channelId: string, type: number, newValue: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 搜索频道
* @param {string} keyword 关键字
* @param {boolean} fuzzy 是否模糊搜索
* @param {function (keyword, [ChannelInfo])} successCB
* @param {function (number)} failCB
*/
searchChannel(keyword: string, fuzzy: boolean, successCB: (arg0: string, arg1: [ChannelInfo]) => any, failCB: (arg0: number) => any): void;
/**
* 是否已收听/关注某个频道
* @param {string} channelId 频道id
* @returns {boolean}
*/
isListenedChannel(channelId: string): boolean;
/**
* 收听或取消收听频道
* @param {string} channelId 频道id
* @param {boolean} listen true,收听;false,取消收听
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
listenChannel(channelId: string, listen: boolean, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取自己创建的频道id列表
* @returns {[string]}
*/
getMyChannels(): [string];
/**
* @deprecated 已废弃,请使用{@link getRemoteListenedChannels}
* 获取所收听的频道id列表
* @returns {[string]}
*/
getListenedChannels(): [string];
/**
* 从服务端获取所收听的频道id列表
* @param {function([String])} successCB
* @param {function(number)} failCB
*
*/
getRemoteListenedChannels(successCB: (arg0: [string]) => any, failCB: (arg0: number) => any): void;
/**
* 销毁频道
* @param {string} channelId 频道id
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
destoryChannel(channelId: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取会话列表
* @param {[number]} types 想获取的会话类型,可选值参考{@link ConversationType}
* @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可
* @returns {[ConversationInfo]}
*/
getConversationList(types: [number], lines: [0]): [ConversationInfo];
/**
* 获取会话详情
* @param {Conversation} conversation
* @returns {ConversationInfo}
*/
getConversationInfo(conversation: Conversation): ConversationInfo;
/**
* 搜索会话
* @param {string} keyword 关键字
* @param {[number]} types 从哪些类型的会话中进行搜索,可选值可参考{@link ConversationType}
* @param {[number]} lines 从哪些会话线路进行搜索,默认传[0]即可
* @returns {[ConversationSearchResult]}
*/
searchConversation(keyword: string, types?: [number], lines?: [number]): [ConversationSearchResult];
/**
* 删除会话
* @param {Conversation} conversation 想删除的目标会话
* @param {boolean} clearMsg 是否已删除的会话的消息
* @returns {Promise<void>}
*/
removeConversation(conversation: Conversation, clearMsg: boolean): Promise<void>;
/**
* 会话置顶或取消置顶
* @param {Conversation} conversation 需要置顶或取消置顶的会话
* @param {number} top > 0, 置顶,可以根据这个值进行置顶排序;0,取消置顶
* @param {function ()} successCB
* @param {function (number)} failCB
*/
setConversationTop(conversation: Conversation, top: number, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 会话免打扰或取消免打扰
* @param {Conversation} conversation 目标会话
* @param {boolean} silent true,设置为免打扰;false,取消免打扰
* @param {function ()} successCB
* @param {function (number)} failCB
*/
setConversationSlient(conversation: Conversation, silent: boolean, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 保存会话草稿
* @param {Conversation} conversation 目标会话
* @param {string} draft 草稿,传''时,相当于清楚会话草稿
*/
setConversationDraft(conversation: Conversation, draft?: string): void;
/**
* 设置会话时间错,当会话不存在时,会创建一个新的会话。
* @param {Conversation} conversation
* @param {number} timestamp
*/
setConversationTimestamp(conversation: Conversation, timestamp: number): void;
/**
* 获取未读消息数
* @param {[number]} types 获取未读数时,包含哪些类型的会话,可选值参考{@link ConversationType}
* @param {[number]} lines 获取未读数时,包含哪些会话线路,默认传[0]即可
* @returns {UnreadCount}
*/
getUnreadCount(types?: [number], lines?: [number]): UnreadCount;
/**
* 获取某个会话的未读消息数
* @param {Conversation} conversation 目标会话
* @returns {UnreadCount}
*/
getConversationUnreadCount(conversation: Conversation): UnreadCount;
/**
* 清楚会话消息未读状态
* @param {Conversation} conversation 目标会话
*/
clearConversationUnreadStatus(conversation: Conversation): void;
/**
* 清楚会话消息中指定消息id之前的消息(包含)未读状态
* @param {Conversation} conversation 目标会话
* @param {int} messageId 消息id
*/
clearUnreadStatusBeforeMessage(conversation: Conversation, messageId: int): void;
/**
* 将会话最后一条消息置为未读
* @param {Conversation} conversation 会话
* @param {boolean} syncToOtherClient 是否同步给其他端
* @return {boolean} 是否操作成功
*/
markConversationAsUnread(conversation: Conversation, syncToOtherClient: boolean): boolean;
/**
* 清除单条消息的未读状态
* @param messageId
*/
clearMessageUnreadStatus(messageId: any): void;
/**
* 清除所有消息的未读状态
*
* 特别注意1:本方法只清除了底层数据库中的未读状态,并未清理 UI 层会话列表中的未读状态,UI 层会话列表中的未读状态,需要手动重置。
* 特别注意2:本方法不会触发{@link ConversationInfoUpdate} 事件
*/
clearAllUnreadStatus(): void;
/**
* 设置媒体消息的状态为已播放
* @param {number} messageId 消息id,不是消息uid!
*/
setMediaMessagePlayed(messageId: number): void;
/**
* 设置消息本地扩展信息
* @param {number} messageId 消息id,不是消息uid!
* @param {string} extra 扩展信息
*/
setMessageLocalExtra(messageId: number, extra: string): void;
/**
* 判断是否是好友
* @param {string} userId 用户id
* @returns {boolean}
*/
isMyFriend(userId: string): boolean;
/**
* 获取星标用户id列表
* @returns {[string]}
*/
getFavUsers(): [string];
/**
* 判断用户是否是星标用户
* @param {string} userId
* @returns {boolean}
*/
isFavUser(userId: string): boolean;
/**
* 设置或取消星标用户
* @param {string} userId 用户id
* @param {boolean} fav true,保存到通讯录;false,从通讯录移除
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
setFavUser(userId: string, fav: boolean, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 发送好友请求
* @param {string} userId 目标用户id
* @param {string} reason 发送好友请求的原因
* @param {string} extra 请求的扩展信息
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
sendFriendRequest(userId: string, reason: string, extra: string, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 获取会话消息
* @deprecated 请使用{@link getMessagesV2}
* @param {Conversation} conversation 目标会话
* @param {number} fromIndex messageId,表示从那一条消息开始获取
* @param {boolean} before true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @return {[Message]} 会话消息列表,参考{@link Message}
*/
getMessages(conversation: Conversation, fromIndex?: number, before?: boolean, count?: number, withUser?: string): [Message];
/**
* 获取消息
* @deprecated 请使用{@link getMessagesExV2}
* @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType}
* @param {[number]} lines 会话线路列表
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @return {[Message]} 会话消息列表,参考{@link Message}
*/
getMessagesEx(conversationTypes: [number], lines: [number], fromIndex?: number, before?: boolean, count?: number, withUser?: string, contentTypes?: [number]): [Message];
/**
* 获取消息
* @deprecated 请使用{@link getMessagesEx2V2}
* @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType}
* @param {[number]} lines 会话线路列表
* @param {[number]} messageStatus 消息状态,可选值参考{@link MessageStatus}
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @return {[Message]} 会话消息列表,参考{@link Message}
*/
getMessagesEx2(conversationTypes: [number], lines: [number], messageStatus: [number], fromIndex?: number, before?: boolean, count?: number, withUser?: string): [Message];
/**
* 获取会话消息
* @deprecated 请使用{@link getMessagesByTimestampV2}
* @param {Conversation} conversation 目标会话
* @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType}
* @param {number} timestamp 时间戳
* @param {boolean} before true, 获取timestamp之前的消息,即更旧的消息;false,获取timestamp之后的消息,即更新的消息。都不包含timestamp对应的消息
* @param {number} count 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @return {[Message]} 会话消息列表,参考{@link Message}
*/
getMessagesByTimestamp(conversation: Conversation, contentTypes: [number], timestamp: number, before?: boolean, count?: number, withUser?: string): [Message];
/**
* 获取用户会话消息
* @deprecated 请使用{@link getUserMessagesV2}
* @param {string} userId 用户id
* @param {Conversation} conversation 目标会话
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @return
*/
getUserMessages(userId: string, conversation: Conversation, fromIndex: number, before?: boolean, count?: number): any;
/**
* 获取用户消息
* @deprecated 请使用{@link getUserMessagesExV2}
* @param {string} userId 用户id
* @param {[number]} conversationTypes 想获取的会话类型,可选值参考{@link ConversationType}
* @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType}
* @return
*/
getUserMessagesEx(userId: string, conversationTypes: [number], lines: [0], fromIndex: number, before?: boolean, count?: number, contentTypes?: [number]): any;
/**
* 获取会话消息
* @param {Conversation} conversation 目标会话
* @param {number} fromIndex messageId,表示从那一条消息开始获取
* @param {boolean} before true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @param {function (Message)} successCB
* @param failCB
*/
getMessagesV2(conversation: Conversation, fromIndex: number, before: boolean, count: number, withUser: string, successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取消息
* @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType}
* @param {[number]} lines 会话线路列表
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {function (Message)} successCB
* @param failCB
*/
getMessagesExV2(conversationTypes: [number], lines: [number], fromIndex: number, before: boolean, count: number, withUser: string, contentTypes: [number], successCB: (arg0: Message) => any, failCB: any): void;
/**
*
* @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType}
* @param {[number]} lines 会话线路列表
* @param {[number]} messageStatus 消息状态,可选值参考{@link MessageStatus}
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @param {function (Message)} successCB
* @param failCB
*/
getMessagesEx2V2(conversationTypes: [number], lines: [number], messageStatus: [number], fromIndex: number, before: boolean, count: number, withUser: string, successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取会话消息
* @param {Conversation} conversation 目标会话
* @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType}
* @param {number} timestamp 时间戳
* @param {boolean} before true, 获取timestamp之前的消息,即更旧的消息;false,获取timestamp之后的消息,即更新的消息。都不包含timestamp对应的消息
* @param {number} count 获取多少条消息
* @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息
* @param {function ([Message])} successCB
* @param failCB
*/
getMessagesByTimestampV2(conversation: Conversation, contentTypes: [number], timestamp: number, before: boolean, count: number, withUser: string, successCB: (arg0: [Message]) => any, failCB: any): void;
/**
* 获取用户会话消息
* @param {string} userId 用户id
* @param {Conversation} conversation 目标会话
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {function (Message)} successCB
* @param failCB
*/
getUserMessagesV2(userId: string, conversation: Conversation, fromIndex: number, before: boolean, count: number, successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取用户消息
* @param {string} userId 用户id
* @param {[number]} conversationTypes 想获取的会话类型,可选值参考{@link ConversationType}
* @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可
* @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取
* @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息
* @param {number} count 本参数暂时无效! 获取多少条消息
* @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType}
* @param {function (Message)} successCB
* @param failCB
*/
getUserMessagesExV2(userId: string, conversationTypes: [number], lines: [0], fromIndex: number, before: boolean, count: number, contentTypes: [number], successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取会话第一条未读消息的消息id
* @param {Conversation} conversation
* @return {number}
*/
getFirstUnreadMessageId(conversation: Conversation): number;
/**
* 已废弃,请使用{@link loadRemoteConversationMessages}
* 获取会还的远程历史消息
* @param {Conversation} conversation 目标会话
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息
* @param {number} count
* @param {function (Message)} successCB
* @param failCB
*/
loadRemoteMessages(conversation: Conversation, contentTypes: [number], beforeUid: number | Long, count: number, successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取会话的远程历史消息
* @param {Conversation} conversation 目标会话
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息
* @param {number} count
* @param {function ([Message])} successCB
* @param failCB
*/
loadRemoteConversationMessages(conversation: Conversation, contentTypes: [number], beforeUid: number | Long, count: number, successCB: (arg0: [Message]) => any, failCB: any): void;
/**
* 获取会话的远程历史消息,仅 web 有效
* @param {Conversation} conversation 目标会话
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息
* @param {number} count
* @param {boolean} filterLocalMessage 是否过滤本地已经存在的消息
* @param {function ([Message])} successCB
* @param failCB
*/
loadRemoteConversationMessagesEx(conversation: Conversation, contentTypes: [number], beforeUid: number | Long, count: number, filterLocalMessage: boolean, successCB: (arg0: [Message]) => any, failCB: any): void;
/**
* 根据会话线路,获取远程历史消息
* @param {number} line 会话线路
* @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {number} count
* @param {function ([Message])} successCB
* @param failCB
*/
loadRemoteLineMessages(line: number, contentTypes: [number], beforeUid: number | Long, count: number, successCB: (arg0: [Message]) => any, failCB: any): void;
/**
* 根据消息 uid,获取远程消息
* @param {Long |String} messageUid 消息uid
* @param {function (Message)} successCB
* @param failCB
*/
loadRemoteMessage(messageUid: Long | string, successCB: (arg0: Message) => any, failCB: any): void;
/**
* 获取消息
* @param {number} messageId 消息id
* @returns {null|Message}
*/
getMessageById(messageId: number): null | Message;
/**
* 获取消息
* @param {Long|string|number} messageUid
* @returns {null|Message}
*/
getMessageByUid(messageUid: Long | string | number): null | Message;
/**
* 搜索消息
* @param {Conversation} conversation 目标会话
* @param {string} keyword 关键字
* @param {string} withUser 目标用户
* @returns {[Message]}
*/
searchMessage(conversation: Conversation, keyword: string, withUser?: string): [Message];
/**
* 搜索消息
* @param {Conversation} conversation 目标会话,如果为空搜索所有会话
* @param {string} keyword 关键字
* @param {boolean} desc 逆序排列
* @param {int} limit 返回数量
* @param {int} offset 偏移
* @param {string} withUser 目标用户
* @returns {Message[]}
*/
searchMessageEx(conversation: Conversation, keyword: string, desc: boolean, limit: int, offset: int, withUser?: string): Message[];
/**
* 搜索消息
* @param {Conversation} conversation 目标会话,如果为空搜索所有会话
* @param {string} keyword 关键字
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {boolean} desc 逆序排列
* @param {int} limit 返回数量
* @param {int} offset 偏移
* @param {string} withUser 目标用户
* @returns {Message[]}
*/
searchMessageByTypes(conversation: Conversation, keyword: string, contentTypes: [number], desc: boolean, limit: int, offset: int, withUser?: string): Message[];
/**
* 搜索消息
* @param {Conversation} conversation 目标会话,如果为空搜索所有会话
* @param {string} keyword 关键字
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {Long} 消息起始时间,如果为0,则忽略起始时间。
* @param {Long} 消息结束时间,如果为0,测忽略结束时间。
* @param {boolean} desc 逆序排列
* @param {int} limit 返回数量
* @param {int} offset 偏移
* @param {string} withUser 目标用户
* @returns {Message[]}
*/
searchMessageByTypesAndTimes(conversation: Conversation, keyword: string, contentTypes: [number], startTime: any, endTime: any, desc: boolean, limit: int, offset: int, withUser?: string): Message[];
/**
* 搜索消息
* @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType}
* @param {[number]} lines 会话线路列表
* @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType}
* @param {string} keyword 关键字
* @param {number} fromIndex messageId,表示从那一条消息开始获取
* @param {boolean} desc 逆序排列
* @param {number} count 最大数量
* @param {string} withUser 目标用户
* @returns {[Message]}
*/
searchMessageEx2(conversationTypes: [number], lines: [number], contentTypes: [number], keyword: string, fromIndex: number, desc: boolean, count: number, withUser?: string): [Message];
/**
* 发送消息
* @param {Conversation} conversation 目标会话
* @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object
* @param {[string]} toUsers 定向发送给会话中的某些用户;为空,则发给所有人;另外对单聊会话,本参数无效
* @param {function (number, number)} preparedCB 消息已插入本地数据的回调,回调的两个参数表示:messageId, timestamp
* @param {function (number, number)} progressCB 媒体上传进度回调,针对媒体消息,且媒体大于100K时有效,回调参数表示:uploaded, total
* @param {function (number, number)} successCB 发送成功回调,回调参数表示:messageUid, timestamp
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
sendConversationMessage(conversation: Conversation, messageContent: MessageContent, toUsers?: [string], preparedCB?: (arg0: number, arg1: number) => any, progressCB?: (arg0: number, arg1: number) => any, successCB?: (arg0: number, arg1: number) => any, failCB?: (arg0: number) => any): Promise<void>;
/**
* 发送消息,参考{@link sendConversationMessage}
* @param {Message} message 一定要求是{@link Message}类型
* @param preparedCB
* @param progressCB
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
sendMessage(message: Message, preparedCB: any, progressCB: any, successCB: any, failCB: any): Promise<void>;
/**
* 发送消息,参考{@link sendMessage}
* @param message
* @param toUsers
* @param preparedCB
* @param progressCB
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
sendMessageEx(message: any, toUsers: any[], preparedCB: any, progressCB: any, successCB: any, failCB: any): Promise<void>;
/**
* 发送已经保存的消息,参考{@link sendMessage}
* @param message
* @param expireDuration
* @param successCB
* @param failCB
* @returns {Promise<void>}
*/
sendSavedMessage(message: any, expireDuration: any, successCB: any, failCB: any): Promise<void>;
/**
* 取消发送消息,仅媒体类消息可以取消
* @param messageId 消息ID
* @returns 是否取消成功
*/
cancelSendingMessage(messageId: any): any;
/**
* 撤回消息
* @param {Long} messageUid
* @param {function ()} successCB
* @param {function (number)} failCB
* @returns {Promise<void>}
*/
recallMessage(messageUid: Long, successCB: () => any, failCB: (arg0: number) => any): Promise<void>;
/**
* 删除消息
* @param {number} messageId 消息id
* @returns {*}
*/
deleteMessage(messageId: number): any;
/**
* 删除远程消息
* @param {Long | string} msgUid 消息uid
* @param {function ()} successCB
* @param {function (number)} failCB
*/
deleteRemoteMessageByUid(msgUid: Long | string, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 更新远程消息消息内容,只有专业版支持。客户端仅能更新自己发送的消息,更新的消息类型不能变,更新的消息类型是服务配置允许更新的内容。Server API更新则没有限制。
* @param {Long | string} msgUid 消息uid
* @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object
* @param {boolean} distribute 是否重新分发给其他客户端
* @param {boolean} updateLocal 是否更新本地消息内容
* @param {function ()} successCB
* @param {function (number)} failCB
*/
updateRemoteMessageContent(msgUid: Long | string, messageContent: MessageContent, distribute: boolean, updateLocal: boolean, successCB: () => any, failCB: (arg0: number) => any): void;
/**
* 清除会话消息
* @param {Conversation} conversation 目标会话
* @returns {Promise<void>}
*/
clearMessages(conversation: Conversation): Promise<void>;
/**
* 清除远程会话消息
* @param {Conversation} conversation
* @param {function ()} successCB
* @param {function (error)} failCB
* @return {Promise<void>}
*/
clearRemoteConversationMessages(conversation: Conversation, successCB: () => any, failCB: (arg0: error) => any): Promise<void>;
/**
* 插入消息
* @param {Conversation} conversation 目标会话
* @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object
* @param {number} status 消息状态,可选值参考{@link MessageStatus}
* @param {boolean} notify 是否触发onReceiveMessage
* @param {Number} serverTime 服务器时间,精度到毫秒
*
* @return {Message} 插入的消息
*/
insertMessage(conversation: Conversation, messageContent: MessageContent, status: number, notify?: boolean, serverTime?: number): Message;
/**
* 更新消息
* @param {number} messageId 消息id
* @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object
* @returns {Promise<void>}
*/
updateMessageContent(messageId: number, messageContent: MessageContent): Promise<void>;
/**
* 更新消息状态
* @param {number} messageId 消息id
* @param {MessageStatus} status 消息状态,可选值参考{@link MessageStatus}
*/
updateMessageStatus(messageId: number, status: MessageStatus): Promise<void>;
/**
* 上传媒体文件
* @param {string} fileName
* @param {string | File} fileOrData base64格式的dataUri 或者 File
* @param {number} mediaType 媒体类型,可选值参考{@link MessageContentMediaType}
* @param {function (string)} successCB 回调通知上传成功之后的url
* @param {function (number)} failCB
* @param {function (number, number)} progressCB
* @returns {Promise<void>}
*/
uploadMedia(fileName: string, fileOrData: string | File, mediaType: number, successCB: (arg0: string) => any, failCB: (arg0: number) => any, progressCB: (arg0: number, arg1: number) => any): Promise<void>;
/**
* 获取协议栈版本
* @returns {String} 协议栈版本
*/
getVersion(): string;