agora-edu-core
Version:
Core APIs for building an online classroom
158 lines (157 loc) • 3.57 kB
TypeScript
import { AgoraRteScene } from 'agora-rte-sdk';
import { EduStoreBase } from '../base';
import { EduUserStruct } from './struct';
import { FetchUserParam } from './type';
/**
* `UserStore` 类用于管理用户。
*/
/** @en
* The `UserStore` class is used for managing users.
*/
export declare class UserStore extends EduStoreBase {
private _disposers;
private _dataStore;
/**
* @internal
*
* 主房间数据信息
**/
/** @en
* @internal
*
* Main room datastore
*/
get mainRoomDataStore(): DataStore;
/**
* @internal
*
* 分组房间数据信息
**/
/** @en
* @internal
*
* Sub room datastore
*/
get subRoomDataStore(): DataStore;
/**
* 本地用户
**/
/** @en
* Local user
*/
get localUser(): EduUserStruct | undefined;
/**
* 房间内所有用户
**/
/** @en
* All users in the room
*/
get users(): Map<string, EduUserStruct>;
/**
* 房间内用户数
*/
/** @en
* Number of users in the room
*/
get userCount(): number;
/**
* 老师列表
**/
/** @en
* Teacher list
*/
get teacherList(): Map<string, EduUserStruct>;
/**
* 学生列表
**/
/** @en
* Student list
*/
get studentList(): Map<string, EduUserStruct>;
/**
* 助教列表
**/
/** @en
* Assistant list
*/
get assistantList(): Map<string, EduUserStruct>;
/**
* 奖励信息字典
* key: 用户UUID
* value: 用户获得的奖励数
**/
/** @en
* Rewards info map
* key: User UUID
* value: The number of rewards the user gets
*/
get rewards(): Map<string, number>;
/**
* 获取用户列表
* @param params 查询条件
* @returns 用户列表
*
**/
/** @en
* Gets the user list
* @param params Search conditions
* @returns User list
*/
fetchUserList(params: FetchUserParam): Promise<{
total: any;
count: any;
nextId: any;
list: any;
}>;
/**
* 将用户踢出房间
* @param userUuid 用户 ID
* @param isBan 是否永久封禁该用户
*
**/
/** @en
* Kicks a user out of the room
* @param userUuid The user ID
* @param isBan Whether to ban the user
*/
kickOutOnceOrBan(userUuid: string, isBan: boolean): Promise<undefined>;
private _setEventHandler;
/**
* 更新用户自定属性
* @param users 要更新的用户属性信息
* @param fromScene 要更新的用户所在的房间对象,不传默认为当前房间
*/
/** @en
* Updates users properties
* @param users Information about the user properties to be updated
* @param fromScene The room object in which the user resides. If not passed, defaults to the current room
*/
updateUserProperties(users: {
userUuid: string;
properties: any;
cause?: any;
}[], fromScene?: AgoraRteScene): Promise<void>;
/**
* @internal
*/
/** @en
* @internal
*/
onInstall(): void;
/**
* @internal
*/
/** @en
* @internal
*/
onDestroy(): void;
}
declare type DataStore = {
users: Map<string, EduUserStruct>;
teacherList: Map<string, EduUserStruct>;
studentList: Map<string, EduUserStruct>;
assistantList: Map<string, EduUserStruct>;
rewards: Map<string, number>;
userCount: number;
};
export {};