UNPKG

agora-edu-core

Version:

Core APIs for building an online classroom

181 lines (180 loc) 4.76 kB
import { AGEventEmitter, AgoraRteScene, Logger } from 'agora-rte-sdk'; import { EduClassroomConfig } from '../../../../configs'; import { EduApiService } from '../../../../services/api'; import { AgoraWidgetMessageListener, AgoraWidgetStateListener } from './type'; export declare class AgoraWidgetController { private _scene; private _api; private _stateListeners; logger: Logger; private _eventBus; private _zIndexController; private _widgetIds; private _cache; constructor(_scene: AgoraRteScene, _api: EduApiService, _stateListeners: AgoraWidgetStateListener[]); /** * widget消息总线 */ get eventBus(): AGEventEmitter; /** * 当前存在的 Widget 实例ID列表 */ get widgetIds(): string[]; /** * 层级控制器 */ get zIndexController(): AgoraWidgetZIndexController; /** * 房间配置 */ get classroomConfig(): EduClassroomConfig; /** * 添加一个组件状态监听器 * @param listener */ /** @en * * @param listener */ addWidgetStateListener(listener: AgoraWidgetStateListener): void; /** * 移除一个组件状态监听器 * @param listener */ removeWidgetStateListener(listener: AgoraWidgetStateListener): void; /** * 向指定 Widget 发送消息 * @param toWidgetId * @param messageType * @param args */ sendMessage(toWidgetId: string, messageType: string, message?: unknown): void; /** * 增加一个消息监听器 * @param listener */ addWidgetMessageListener(listener: AgoraWidgetMessageListener): void; /** * 移除一个消息监听器 * @param listener */ removeWidgetMessageListener(listener: AgoraWidgetMessageListener): void; /** * 广播消息 */ broadcast(messageType: string, message?: unknown): void; /** * 监听广播消息 */ addBroadcastListener(listener: Omit<AgoraWidgetMessageListener, 'widgetId'>): void; /** * 移除一个广播消息监听器 */ removeBroadcastListener(listener: Omit<AgoraWidgetMessageListener, 'widgetId'>): void; /** * 设置 widget 为活跃 * @param widgetId * @param extra * @returns */ setWidegtActive(widgetId: string, props?: any, ownerUserUuid?: string): Promise<{ data: any; }>; /** * 设置 widget 为不活跃 * @param widgetId * @returns */ setWidgetInactive(widgetId: string, props?: any): Promise<{ data: any; }>; /** * 删除房间 Widget * @param widgetId * @param keys * @returns */ deleteWidget(widgetId: string): Promise<{ data: any; }>; /** * 删除用户属性字段 * @param widgetId * @param keys * @returns */ removeWidgetUserProperties(widgetId: string, keys?: string[]): Promise<{ data: any; }>; /** * 删除扩展信息字段 * @param widgetId * @param keys * @returns */ removeWidgetExtraProperties(widgetId: string, keys?: string[]): Promise<{ data: any; }>; /** * 更新 widget 属性 * @param widgetId * @param props * @returns */ updateWidgetProperties(widgetId: string, props: any): Promise<{ data: any; }>; /** * 更新 widget 用户属性 * @param widgetId * @param props */ updateWidgetUserProperties(widgetId: string, props: any): void; /** * 销毁 */ destroy(): void; /** * 获取 Widget 属性 * @param widgetId * @returns */ getWidgetProperties(widgetId: string): any; /** * 获取 Widget 用户属性 * @param widgetId * @returns */ getWidgetUserProperties(widgetId: string): any; /** * 获取 Widget 轨迹同步信息 * @param widgetId * @returns */ getWidgetTrack(widgetId: string): any; /** * 获取 Widget 状态 * @param widgetId */ getWidgetState(widgetId: string): any; private _addEventListener; private _removeEventListener; private _handleWidgetStateChange; private _handleWidgetPropertiesChange; private _handleWidgetUserPropertiesChange; private _handleWidgetTrackChange; private _extractProps; private _compareToPrevious; private _clearCache; private _handleRoomPropertiesChange; private _handleUserPropertiesChange; private _updateBatchUserProperties; private _handleUserAdded; } declare class AgoraWidgetZIndexController { private _latestZIndex; incrementZIndex(): number; get latestZIndex(): number; setZIndex(zIndex: number): void; } export {};