UNPKG

nim-web-sdk-ng

Version:

Yunxin IM SDK next generation

357 lines (356 loc) 8.71 kB
import { V2NIMUser } from './V2NIMUserService'; import type { NIMEBaseServiceClass } from './types'; /** * v2 好友模块 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMFriendService 后使用 * * @example * ``` * import { NIM, V2NIMFriendService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMFriendService, 'V2NIMFriendService') * ``` */ export declare class V2NIMFriendService extends NIMEBaseServiceClass<V2NIMFriendListener> { /** * 添加/申请好友 * @param accountId 好友 ID * @param params 申请相关参数 */ addFriend(accountId: string, params: V2NIMFriendAddParams): Promise<void>; /** * 删除好友 * * @param accountId 好友 ID * @param params 删除相关参数 */ deleteFriend(accountId: string, params: V2NIMFriendDeleteParams): Promise<void>; /** * 接受好友申请 * * @param accountId 好友 ID */ acceptAddApplication(application: V2NIMFriendAddApplication): Promise<void>; /** * 拒绝好友申请 * * @param accountId 好友 ID * @param postscript 拒绝时的附言 */ rejectAddApplication(application: V2NIMFriendAddApplication, postscript?: string): Promise<void>; /** * 设置好友信息 * * @param accountId 好友 ID * @param params 设置好友信息参数 */ setFriendInfo(accountId: string, params: V2NIMFriendSetParams): Promise<void>; /** * 获取好友列表 */ getFriendList(): Promise<V2NIMFriend[]>; /** * 根据账号 ID 获取好友信息 * * @param accountIds 好友 ID 列表 */ getFriendByIds(accountIds: string[]): Promise<V2NIMFriend[]>; /** * 根据账号 ID 检查好友状态 * @param accountIds 好友 ID列表 */ checkFriend(accountIds: string[]): Promise<V2NIMCheckFriendResult>; /** * 获取申请添加好友列表通知 */ getAddApplicationList(option: V2NIMFriendAddApplicationQueryOption): Promise<V2NIMFriendAddApplicationResult>; /** * 设置好友申请已读 */ setAddApplicationRead(): Promise<void>; /** * 获取未读的好友申请数量 */ getAddApplicationUnreadCount(): Promise<number>; /** * 清空所有好友申请 * * @example * ``` * await nim.V2NIMFriendService.clearAllAddApplication() * ``` */ clearAllAddApplication(): Promise<void>; /** * 删除好友申请 * * 注: 会删除相同申请者的所有申请记录 * * @param applicationInfo 好友申请记录 */ deleteAddApplication(applicationInfo: V2NIMFriendAddApplication): Promise<void>; /** * 根据关键词搜索好友 * @param option 搜索好友的条件 */ searchFriendByOption(option: V2NIMFriendSearchOption): Promise<V2NIMFriend[]>; } /** * 好友信息,协议文档:https://docs.popo.netease.com/team/pc/MMC/pageDetail/d1f9d84a362d4e3db698a920e0bb9fac */ export declare type V2NIMFriend = { /** * 好友 ID */ accountId: string; /** * 好友备注名 */ alias?: string; /** * 服务器扩展字段 */ serverExtension: string; /** * 用户扩展字段 */ customerExtension: string; /** * 创建时间 */ createTime?: number; /** * 更新时间 */ updateTime?: number; /** * 好友来源。目前默认都是0 */ source?: number; /** * 好友关系。预留字段,后期实现单向好友关系时使用 */ /** * 方向好友关系。预留字段,后期实现单向好友关系时使用 */ /** * 扩展字段。预留字段 */ /** * @computed * * 所关联的用户信息 */ userProfile?: V2NIMUser; }; export declare const enum V2NIMFriendAddMode { /** * 直接加为好友 */ V2NIM_FRIEND_MODE_TYPE_ADD = 1, /** * 请求加为好友 */ V2NIM_FRIEND_MODE_TYPE_APPLY = 2 } export declare type V2NIMFriendAddParams = { /** * 添加好友模式 */ addMode: V2NIMFriendAddMode; /** * 添加/申请好友时的附言 */ postscript: string; }; /** * 申请添加好友的相关信息 */ export declare type V2NIMFriendAddApplication = { /** * 申请者账户 */ applicantAccountId: string; /** * 被申请人账户 */ recipientAccountId: string; /** * 操作者账号 */ operatorAccountId: string; /** * 操作时添加的附言 */ postscript?: string; /** * 操作的状态 */ status: V2NIMFriendAddApplicationStatus; /** * 操作的时间 */ timestamp: number; /** * 是否已读 */ read: boolean; }; /** * 好友添加操作的类型 */ export declare const enum V2NIMFriendAddApplicationType { /** * 自己收到了好友的添加申请 */ V2NIM_FRIEND_ADD_APPLICATION_TYPE_RECEIVED = 1, /** * 自己收到了对方拒绝我申请添加好友 */ V2NIM_FRIEND_ADD_APPLICATION_TYPE_REJECTED = 2 } /** * 好友申请的处理状态 */ export declare const enum V2NIMFriendAddApplicationStatus { /** * 未处理 */ V2NIM_FRIEND_ADD_APPLICATION_STATUS_INIT = 0, /** * 已同意 */ V2NIM_FRIEND_ADD_APPLICATION_STATUS_AGREED = 1, /** * 已拒绝 */ V2NIM_FRIEND_ADD_APPLICATION_STATUS_REJECTED = 2, /** * 已过期 */ V2NIM_FRIEND_ADD_APPLICATION_STATUS_EXPIRED = 3, /** * 对方直接添加你为好友 */ V2NIM_FRIEND_ADD_APPLICATION_STATUS_DIRECT_ADD = 4 } export declare const enum V2NIMFriendDeletionType { /** * 自己删除好友 */ V2NIM_FRIEND_DELETION_TYPE_BY_SELF = 1, /** * 被好友删除 */ V2NIM_FRIEND_DELETION_TYPE_BY_PEER = 2 } export declare type V2NIMFriendDeleteParams = { /** * 是否同步删除前设置的备注 * * false:不同步删除备注 * true: 同步删除备注 */ deleteAlias: boolean; }; export declare type V2NIMFriendSetParams = { /** * 别名 */ alias?: string; /** * 扩展字段 */ serverExtension?: string; }; /** * 申请添加好友相关信息查询参数 */ export declare type V2NIMFriendAddApplicationQueryOption = { /** * 分页位置。首次查询传0,下一次传上一次返回的offset。查询结果不包含offset位置 */ offset?: number; /** * 查询数量, 默认50 */ limit?: number; /** * 要查询的状态列表 * 如果列表为空,或者不传,表示查询所有状态 */ status: Array<V2NIMFriendAddApplicationStatus>; }; export declare type V2NIMFriendAddApplicationResult = { infos: Array<V2NIMFriendAddApplication>; offset: number; finished: boolean; }; export declare const enum V2NIMFriendVerifyType { /** * 直接加为好友 */ V2NIM_FRIEND_VERIFY_TYPE_ADD = 1, /** * 请求加为好友 */ V2NIM_FRIEND_VERIFY_TYPE_APPLY = 2, /** * 同意添加好友 */ V2NIM_FRIEND_VERIFY_TYPE_ACCEPT = 3, /** * 拒绝添加好友 */ V2NIM_FRIEND_VERIFY_TYPE_REJECT = 4 } /** * 好友模块的事件定义 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMFriendService 后使用 * * @example * ``` * import { NIM, V2NIMFriendService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMFriendService, 'V2NIMFriendService') * ``` */ export interface V2NIMFriendListener { /** * 已添加好友 */ onFriendAdded: [friend: V2NIMFriend]; /** * 已删除好友 */ onFriendDeleted: [accountId: string, deletionType: V2NIMFriendDeletionType]; /** * 收到好友申请 */ onFriendAddApplication: [application: V2NIMFriendAddApplication]; /** * 好友申请被拒绝的通知 */ onFriendAddRejected: [rejection: V2NIMFriendAddApplication]; /** * 好友信息更新 */ onFriendInfoChanged: [friend: V2NIMFriend]; } export interface V2NIMCheckFriendResult { [accountId: string]: boolean; } export declare type V2NIMFriendSearchOption = { /** * 查询的关键词,默认搜索好友备注。可以指定是否同时搜索用户账号 */ keyword: string; /** * 是否检索昵称。默认为 true */ searchAlias?: boolean; /** * 是否同时搜索用户账号。默认值为 false */ searchAccountId?: boolean; };