UNPKG

agora-edu-core

Version:

Core APIs for building an online classroom

815 lines (814 loc) 20.7 kB
import { AgoraRteMediaPublishState, AgoraRteMediaSourceState, ApiBase } from 'agora-rte-sdk'; import { CloudDriveResourceInfo, ConversionOption } from '../stores/domain/common/cloud-drive/type'; import { EduSessionInfo, EduRoleTypeEnum, AgoraStreamStates } from '../type'; import { ClassState } from '../stores/domain/common/room/type'; import { BroadcastMessageRange, BroadcastMessageType, GroupDetail, PatchGroup } from '../stores/domain/common/group/type'; import { GroupState } from '../stores/domain/common/group/type'; export declare class EduApiService extends ApiBase { /** * 预检 * @param session * @param handsUpLimit * @param stream * @returns */ checkIn(session: Partial<EduSessionInfo>, handsUpLimit?: { maxAccept: number; maxWait: number; type: number; timeout: number; }, stream?: { videoState?: AgoraRteMediaPublishState; audioState?: AgoraRteMediaPublishState; videoSourceState?: AgoraRteMediaSourceState; audioSourceState?: AgoraRteMediaSourceState; }): Promise<any>; /** * 进入房间 * @param session * @param handsUpLimit * @param stream * @returns */ entry(session: Partial<EduSessionInfo>, stream?: { videoState?: AgoraRteMediaPublishState; audioState?: AgoraRteMediaPublishState; videoSourceState?: AgoraRteMediaSourceState; audioSourceState?: AgoraRteMediaSourceState; }): Promise<any>; /** * 获取个人资源列表 * @param userUuid * @param options * @returns */ fetchPersonalResources(userUuid: string, options: { nextId?: string; tags?: string[]; resourceName?: string; limit?: number; pageSize?: number; pageNo?: number; converted?: number; orderBy?: string; parentResourceUuid?: string; }): Promise<any>; /** * 删除个人资源 * @param resourceUuids * @param userUuid * @returns */ removeMaterials(resourceUuids: string[], userUuid: string): Promise<any>; /** * 获取上传信息 * @param param0 * @returns */ fetchFileUploadSts({ userUuid, resourceName, contentType, ext, size, conversion, }: Partial<{ userUuid: string; resourceName: string; contentType: string; ext: string; size: number; conversion?: Partial<ConversionOption>; }>): Promise<any>; /** * 新增云盘资源 * @param resourceUuid * @param userUuid * @param resourceInfo * @returns */ addCloudDriveFile(resourceUuid: string, userUuid: string, resourceInfo: CloudDriveResourceInfo): Promise<any>; /** * 修改云盘资源 * @param resourceUuid * @param userUuid * @param resourceInfo * @returns */ updateCloudDriveFile(resourceUuid: string, userUuid: string, resourceInfo: Pick<CloudDriveResourceInfo, 'resourceName'>): Promise<any>; /** * @deprecated This API will be removed in near future. * 新增云盘资源 * @param resourceUuid * @param userUuid * @param resourceInfo * @returns */ addCloudDriveFileV3(resourceUuid: string, userUuid: string, resourceInfo: CloudDriveResourceInfo): Promise<any>; /** * 获取聊天历史记录 * @param params * @returns */ getHistoryChatMessage(params: { roomUuid: string; userUuid: string; data: { nextId: string; sort: number; }; }): Promise<any>; /** * 获取聊天历史会话信息 * @param params * @returns */ getConversationHistoryChatMessage(params: { roomUuid: string; data: { nextId: string; sort: number; studentUuid: string; }; }): Promise<any>; /** * 获取聊天会话列表 * @param params * @returns */ getConversationList(params: { roomUuid: string; data: { nextId: string; }; }): Promise<any>; /** * 发送聊天信息 * @param params * @returns */ sendChat(params: { roomUuid: string; userUuid: string; data: { message: string; type: number; }; }): Promise<any>; /** * 开启轮播 * @param payload * @returns */ startCarousel(payload: { roomUuid: string; range?: number; type?: number; interval?: number; count?: number; }): Promise<any>; /** * 发送聊天会话信息 * @param params * @returns */ sendConversationChat(params: { roomUuid: string; userUuid: string; data: { message: string; type: number; }; }): Promise<any>; /** * 关闭轮播 * @param payload * @returns */ stopCarousel(payload: { roomUuid: string; }): Promise<any>; /** * 踢出房间 * @param userUuid * @param isBan * @param roomUuid * @returns */ kickOutOnceOrBan(userUuid: string, isBan: boolean, roomUuid: string): Promise<any>; /** * 聊天禁言 * @param params * @returns */ muteChat(params: { roomUuid: string; muteChat: number; }): Promise<any>; /** * 发送奖励 * @param params * @param isBatch * @returns */ sendRewards(params: { roomUuid: string; rewards: Array<{ userUuid: string; changeReward: number; }>; }, isBatch?: boolean): Promise<any>; /** * 允许举手上台申请 * @param params * @returns */ allowHandsUp(params: { roomUuid: string; state: number; defaultAcceptRole?: 'audience' | ''; }): Promise<any>; /** * 举手 * @param params * @returns */ handsUp(params: { roomUuid: string; toUserUuid: string; timout?: number; retry?: boolean; payload?: unknown; }): Promise<any>; /** * 挥手 * @param params * @returns */ handsWave(params: { roomUuid: string; toUserUuid: string; timout?: number; retry?: boolean; payload?: unknown; }): Promise<any>; /** * 接受举手上台请求 * @param params * @returns */ acceptHandsUp(params: { roomUuid: string; toUserUuid?: string; }): Promise<any>; /** * 取消举手 * @param params * @returns */ cancelHandsUp(params: { roomUuid: string; toUserUuid?: string; }): Promise<any>; /** * 取消挥手 * @param params * @returns */ cancelHandsWave(params: { roomUuid: string; toUserUuid?: string; }): Promise<any>; /** * 下台,停止连麦 * @param params * @returns */ revokeCoVideo(params: { roomUuid: string; toUserUuid?: string; }): Promise<any>; /** * 所有成员下台,停止连麦 * @param params * @returns */ revokeAllCoVideo(params: { roomUuid: string; }): Promise<any>; /** * 更新录制状态 * @param params * @returns */ updateRecordingState(params: { roomUuid: string; state: number; args?: unknown; backupCount?: number; }): Promise<any>; /** * 更新录制状态(录制中) * @param params * @returns */ updateRecordingStateOngoing(params: { roomUuid: string; opts: { onHold: boolean; }; }): Promise<any>; /** * 更新教室状态 * @param params * @returns */ updateClassState(params: { roomUuid: string; state: ClassState; }): Promise<any>; /** * 开启屏幕共享 * @param roomId * @param userUuid * @returns */ startShareScreen(roomId: string, userUuid: string, audioOptions?: Partial<AgoraStreamStates>): Promise<any>; /** * 停止屏幕共享 * @param roomId * @param userUuid * @returns */ stopShareScreen(roomId: string, userUuid: string): Promise<any>; /** * 开启屏幕共享 * @param roomId * @param userUuid * @returns */ startShareScreenStateless(roomId: string, userUuid: string): Promise<any>; /** * 停止屏幕共享 * @param roomId * @param userUuid * @returns */ stopShareScreenStateless(roomId: string, userUuid: string): Promise<any>; /** * 更新房间 widget 属性 * @param roomUuid * @param widgetUuid * @param properties * @returns */ updateWidgetProperties(roomUuid: string, widgetUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 删除房间 widget * @param roomUuid * @param widgetUuid * @returns */ deleteWidget(roomUuid: string, widgetUuid: string): Promise<{ data: any; }>; /** * 移除 extra 中的属性 * @param roomUuid * @param widgetUuid * @param properties * @returns */ removeWidgetExtraProperties(roomUuid: string, widgetUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 设置用户 widget 属性 * @param roomUuid * @param widgetUuid * @param userUuid * @param properties * @returns */ updateWidgetUserProperties(roomUuid: string, widgetUuid: string, userUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 移除用户 widget 属性 * @param roomUuid * @param widgetUuid * @param userUuid * @param properties * @returns */ removeWidgetUserProperties(roomUuid: string, widgetUuid: string, userUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 开启选择题 * @param roomUuid * @param properties * @returns */ startAnswer(roomUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 停止选择 * @param roomUuid * @param popupQuizId * @returns */ stopAnswer(roomUuid: string, popupQuizId: string): Promise<{ data: any; }>; /** * 修改答题正确选项 * @param roomUuid * @param popupQuizId * @param correctItems * @returns */ updateAnswerCorrectItems(roomUuid: string, popupQuizId: string, correctItems: string[]): Promise<{ data: any; }>; /** * 获取答题列表 * @param roomUuid * @param popupQuizId * @param query * @returns */ getAnswerList(roomUuid: string, popupQuizId: string, query: { nextId: number; count: number; }): Promise<{ data: any; }>; /** * 提交答案 * @param roomUuid * @param properties * @returns */ submitAnswer(roomUuid: string, popupQuizId: string, userUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 开启投票 * @param roomUuid * @param properties * @returns */ startPolling(roomUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 投票 * @param roomUuid * @param pollId 投票id * @param userUuid 用户ID * @param properties * @returns */ submitResult(roomUuid: string, pollId: string, userUuid: string, properties: unknown): Promise<{ data: any; }>; /** * 结束投票 * @param roomUuid * @param pollId * @returns */ stopPolling(roomUuid: string, pollId: string): Promise<{ data: any; }>; /** * 开启倒计时 * @param roomUuid * @param duration * @returns */ startCountdownTimer(roomUuid: string, duration: number): Promise<{ data: any; }>; /** * 暂停倒计时 * @param roomUuid * @param countdownTimerId * @returns */ pauseCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{ data: any; }>; /** * 恢复倒计时 * @param roomUuid * @param countdownTimerId * @returns */ resumeCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{ data: any; }>; /** * 结束倒计时 * @param roomUuid * @param countdownTimerId * @returns */ stopCountdownTimer(roomUuid: string, countdownTimerId: string): Promise<{ data: any; }>; /** * 更新用户属性 * @param roomUuid * @param properties * @param cause * @returns */ updateFlexProperties(roomUuid: string, params: { properties?: unknown; increments?: unknown; cause?: unknown; throttleTime?: number; }): Promise<any>; /** * 上报麦克风设备状态(兼容历史版本) * @param payload * @returns */ reportMicCameraStateLeagcy(payload: { roomUuid: string; userUuid: string; data: unknown; }): Promise<any>; /** * 获取房间内用户列表 * @param roomId * @param params * @returns */ fetchUserList(roomId: string, params: { role: EduRoleTypeEnum; type?: '0' | '1'; nextId: string | number | null | undefined; count?: number; userName?: string; }): Promise<any>; /** * 新增组 * @param roomUuid * @param data * @returns */ addGroup(roomUuid: string, data: { groups: GroupDetail[]; inProgress: boolean; }): Promise<any>; /** * 开启/关闭分组 * @param roomUuid * @param state * @param data * @returns */ updateGroupState(roomUuid: string, data: { groups: GroupDetail[]; inProgress?: boolean; syncBoardScenes?: boolean; }, state?: GroupState): Promise<any>; /** * 删除分组 * @param roomUuid * @param data * @returns */ removeGroup(roomUuid: string, data: { removeGroupUuids: string[]; }): Promise<any>; /** * 接受分组邀请 * @param roomUuid * @param groupUuid */ acceptGroupInvite(roomUuid: string, groupUuid: string, data?: { leaveGroupUuids: string[]; }): Promise<any>; /** * 拒绝进入分组邀请 * @param roomUuid * @param groupUuid * @returns */ rejectGroupInvite(roomUuid: string, groupUuid: string): Promise<any>; /** * 更新分组成员 * @param roomUuid * @param data 🔢 inProgress 是否邀请,true 发送邀请 false 直接加入 * @returns */ updateGroupUsers(roomUuid: string, data: { groups: PatchGroup[]; inProgress: boolean; }): Promise<any>; /** * 发送全体消息 * @param roomUuid * @param data * rang: 1.大房间 2.指定组 3.全体(大房间+所有组) * toGroupUuids: 当type=2时,传入指定小组id * type: 消息类型;txt:文本消息,img:图片消息,loc:位置消息,audio:语音消息,video:视频消息,file:文件消息 * msg: 消息 * @returns */ sendNotificationMessage(roomUuid: string, data: { rang: number; toGroupUuids: string[]; type: string; msg: string; }): Promise<any>; /** * 修改分组信息 * @param roomUuid * @param data * @returns */ updateGroupInfo(roomUuid: string, data: { groups: PatchGroup[]; }): Promise<any>; /** * 发送全体消息(根据区域判断) * @param roomUuid * @param data * @returns */ broadcastMessage(roomUuid: string, data: { range: BroadcastMessageRange; type: BroadcastMessageType; msg: string; toGroupUuids?: string[]; }): Promise<any>; /** * 发送全体消息(AgoraChat) * @param roomUuid * @param data * @returns */ broadcastHxChatMessage(roomUuid: string, data: { range: BroadcastMessageRange; type: BroadcastMessageType; msg: string; toGroupUuids?: string[]; }): Promise<any>; /** * 发送全体消息(RTM) * @param roomUuid * @param data * @returns */ broadcastRtmChatMessage(roomUuid: string, data: { range: BroadcastMessageRange; type: BroadcastMessageType; msg: string; toGroupUuids?: string[]; }): Promise<any>; /** * 保存白板windowManager属性(课件) * @param roomUuid * @param data * @returns */ setWindowManagerAttributes(roomUuid: string, data: unknown): Promise<any>; /** * 远程控制授权 * @param roomUuid * @param userUuid * @returns */ remoteControlTeacherAuthorization(roomUuid: string, userUuid: string): Promise<any>; /** * 获取白板windowManager属性(课件) * @param roomUuid * @returns */ getWindowManagerAttributes(roomUuid: string): Promise<any>; /** * 复制房间笔迹 * @param roomUuid * @param fromRoomUuid * @returns */ copyScenes(roomUuid: string, fromRoomUuid: string): Promise<any>; /** * 远程控制取消授权 * @param roomUuid * @param userUuid * @returns */ remoteControlTeacherUnauthorization(roomUuid: string, userUuid: string): Promise<any>; /** * 远程控制-老师发起邀请 * @param roomUuid * @param data * @returns */ remoteControlTeacherInvite(roomUuid: string, data: { toUserUuid: string; }): Promise<any>; /** * 远程控制-老师结束邀请 * @param roomUuid * @param toUserUuid * @returns */ remoteControlTeacherStopInvite(roomUuid: string, toUserUuid: string): Promise<any>; /** * 远程控制-学生同意邀请 * @param roomUuid * @param userUuid * @returns */ remoteControlStudentAcceptInvite(roomUuid: string, userUuid: string): Promise<any>; /** * 远程控制-获取远程控制需要的token * @param roomUuid * @param userUuid * @returns */ remoteControlGetTokens(roomUuid: string, userUuid: string): Promise<any>; /** * 更新视频墙开关状态和发流用户列表 * @param roomUuid 课堂 ID * @param state :视频墙开关状态 * - 1:开启视频墙功能 * - 0:关闭视频墙功能 * @param data 想要控制发流权限的用户 ID 列表 * @returns */ updateExpandedScopeAndStreams(roomUuid: string, state: 1 | 0, data: { userUuids: string[]; }): Promise<any>; /** * 批量更新用户属性 * @param param0 * @returns */ updateBatchUserProperties({ roomUuid, data, }: { data: { userUuid: string; properties: unknown; cause?: unknown; }[]; roomUuid: string; }): Promise<any>; /** * 批量删除用户属性 * @param param0 * @returns */ deleteBatchUserProperties({ roomUuid, data, }: { roomUuid: string; data: { properties: string[]; userUuid: string; cause?: unknown; }[]; }): Promise<any>; /** * 更新用户tag属性 * @param param0 * @returns */ updateUserTags({ key, data, roomUuid, userUuid, }: { key: string; data: unknown; roomUuid: string; userUuid: string; }): Promise<any>; /** * 查询房间sequences事件 * @param param0 * @returns */ getRoomEvents({ roomUuid, userUuid, nextId, cmd, causeDataFilterKeys, causeDataFilterValues, }: { roomUuid: string; userUuid?: string; nextId?: number; cmd?: number; causeDataFilterKeys?: string; causeDataFilterValues?: string; }): Promise<any>; /** * 查询房间录制列表 * @param param0 * @returns */ getRecordList({ roomUuid, nextId }: { roomUuid: string; nextId?: number; }): Promise<any>; /** * 获取 AgoraChat 用户登录 Token * @param param0 * @returns */ getAgoraChatToken({ roomUuid, userUuid }: { roomUuid: string; userUuid: string; }): Promise<any>; }