node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
92 lines (91 loc) • 3.31 kB
TypeScript
import { NIMResCode } from './client_def';
/** @enum NIMFriendFlag 好友类型 */
export declare enum NIMFriendFlag {
/** 陌生人 */
kNIMFriendFlagNotFriend = 0,
/** 普通好友 */
kNIMFriendFlagNormal = 1
}
/** @enum NIMFriendSource 好友来源 */
export declare enum NIMFriendSource {
/** 默认 */
kNIMFriendSourceDefault = 0
}
/** @enum NIMVerifyType 好友验证方式 */
export declare enum NIMVerifyType {
/** 直接加好友 */
kNIMVerifyTypeAdd = 1,
/** 请求加好友 */
kNIMVerifyTypeAsk = 2,
/** 同意 */
kNIMVerifyTypeAgree = 3,
/** 拒绝 */
kNIMVerifyTypeReject = 4
}
/** @enum NIMFriendQueryType 查询好友信息的依据条件 */
export declare enum NIMFriendQueryType {
/** 同时匹配账户ID和备注名 */
kNIMFriendQueryDefault = 0,
/** 仅匹配账户ID */
kNIMFriendQueryByAccId = 1,
/** 仅匹配备注名 */
kNIMFriendQueryByAlias = 2
}
/** @enum NIMFriendChangeType 好友数据变化类型 */
export declare enum NIMFriendChangeType {
/** 加好友/处理好友请求 */
kNIMFriendChangeTypeRequest = 1,
/** 删除好友 */
kNIMFriendChangeTypeDel = 2,
/** 更新好友 */
kNIMFriendChangeTypeUpdate = 3,
/** 好友列表同步与更新 */
kNIMFriendChangeTypeSyncList = 5
}
/** @brief 删除好有拓展选项 */
export interface DeleteFriendOption {
delete_alias_?: boolean;
}
/** @brief 云信好友 */
export interface FriendProfile {
/** 用户账号 */
accid?: string;
/** 主动的好友关系 */
flag?: NIMFriendFlag;
/** 被动的好友关系 */
beflag?: NIMFriendFlag;
/** 好友来源 */
source?: NIMFriendSource;
/** 好友别名 */
alias?: string;
/** 扩展数据 */
bits?: number;
/** 扩展数据 */
ex?: string;
/** 扩展数据 */
server_ex?: string;
/** 好友创建时间戳(毫秒) */
create_timetag?: number;
/** 好友更新时间戳(毫秒) */
update_timetag?: number;
}
/** @brief 云信好友变更事件 */
export interface FriendChangeEvent {
/** 事件类型 */
type_?: NIMFriendChangeType;
/** 事件内容,根据事件类型通过提供的 ParsexxxEvent 接口(nim_cpp_friend.h)解析该内容 */
content_?: string;
}
export type FriendChangeCallback = (result: FriendChangeEvent) => void;
export type FriendOptCallback = (rescode: NIMResCode) => void;
export type GetFriendsListCallback = (rescode: NIMResCode, result: Array<FriendProfile>) => void;
export type GetFriendProfileCallback = (accid: string, result: FriendProfile) => void;
export interface NIMFriendAPI {
InitEventHandlers(): void;
Request(accid: string, verify_type: NIMVerifyType, msg: string, cb: FriendOptCallback | null, jsonExtension: string): boolean;
Delete(accid: string, option: DeleteFriendOption, cb: FriendOptCallback | null): boolean;
Update(profile: FriendProfile, cb: FriendOptCallback | null, jsonExtension: string): boolean;
GetList(cb: GetFriendsListCallback | null, jsonExtension: string): void;
GetFriendProfile(accid: string, cb: GetFriendProfileCallback | null, jsonExtension: string): void;
QueryFriendListByKeyword(keyword: string, cb: GetFriendsListCallback | null, jsonExtension: string): boolean;
}