agora-edu-core-lb
Version:
For publishing npm package agora-edu-core (Web & Electron). Get more information from https://docs.agora.io
299 lines (298 loc) • 9.06 kB
TypeScript
import { EduRoleTypeEnum } from 'agora-rte-sdk';
import { IReactionDisposer } from 'mobx';
import { EduScenarioAppStore } from '.';
import { IAgoraExtApp } from '../api/declare';
import { RoomApi } from '../services/room-api';
import { ChatConversation, ChatMessage, QuickTypeEnum } from '../types';
import { EduClassroomStateEnum, SimpleInterval } from './scene';
import { SmallClassStore } from './small-class';
export declare enum CoVideoActionType {
studentHandsUp = 1,
teacherAccept = 2,
teacherRefuse = 3,
studentCancel = 4,
teacherReplayTimeout = 7,
carousel = 10
}
export declare type CauseOperator = {
cmd: number;
data: {
processUuid: string;
addProgress: ProgressUserInfo[];
addAccepted: ProgressUserInfo[];
removeProgress: ProgressUserInfo[];
removeAccepted: ProgressUserInfo[];
actionType: CoVideoActionType;
cmd: number;
extAppCause: any;
};
};
export declare type CauseData = {
data: {
processUuid: string;
addProgress: ProgressUserInfo[];
removeProgress: ProgressUserInfo[];
actionType: CoVideoActionType;
};
};
export declare type CauseResponder<T extends Partial<CauseData['data']>> = {
readonly cmd: 501;
readonly data: Readonly<T>;
};
export declare type HandsUpDataTypes = HandsUpMessageData | CancelHandsUpMessageData | CloseCoVideoMessageData | AcceptMessageData | RefuseMessageData;
export declare type HandsUpMessageData = Pick<CauseData['data'], 'actionType' | 'processUuid' | 'addProgress'>;
export declare type CancelHandsUpMessageData = Pick<CauseData['data'], 'processUuid' | 'removeProgress' | 'actionType'>;
export declare type CloseCoVideoMessageData = Pick<CauseData['data'], 'processUuid' | 'removeProgress' | 'actionType'>;
export declare type AcceptMessageData = Pick<CauseData['data'], 'actionType' | 'processUuid' | 'addProgress'>;
export declare type RefuseMessageData = Pick<CauseData['data'], 'actionType' | 'processUuid' | 'removeProgress'>;
export declare type RosterUserInfo = {
name: string;
uid: string;
onlineState: boolean;
onPodium: boolean;
micDevice: boolean;
cameraDevice: boolean;
cameraEnabled: boolean;
micEnabled: boolean;
whiteboardGranted: boolean;
canCoVideo: boolean;
canGrantBoard: boolean;
stars: number;
disabled: boolean;
};
export declare type ProgressUserInfo = {
userUuid: string;
ts: number;
};
declare type ProcessType = {
reward: number;
};
declare type RoomProperties = {
board: {
info: {
boardAppId: string;
boardId: string;
boardToken: string;
};
};
record: {
state: number;
roomType: number;
};
reward: RoomRewardType;
state: number;
screen: {
state: number;
streamUuid: string;
userUuid: string;
selected: number;
};
students: Record<string, ProcessType>;
carousel: {
state: 1 | 0;
type: 1 | 2;
range: 1 | 2;
interval: number;
};
};
declare type MinimizeType = {
id: string;
type: 'teacher' | 'student' | 'chat';
content: string;
isHidden: boolean;
animation: string;
zIndex: number;
height: number;
width?: number;
};
declare type RoomRewardType = {
room: number;
config: {
roomLimit: number;
};
};
declare type TrophyType = {
minimizeTrigger: boolean;
startPosition: {
x: number;
y: number;
};
endPosition: {
x: number;
y: number;
};
};
declare type ClassroomScheduleType = {
/**
* 课程开始时刻 单位:ms
*/
startTime: number;
/**
* 课程时长 单位:s
*/
duration: number;
/**
* 课程结束后延迟关闭时长 单位:s
*/
closeDelay: number;
};
export declare enum RoomPropertiesChangeCause {
studentRewardStateChanged = 1101
}
export declare const networkQualities: {
[key: string]: string;
};
export declare class RoomStore extends SimpleInterval {
static resolutions: any[];
history: any;
operator: any;
setHistory(history: any): void;
resetRoomProperties(): void;
roomProperties: RoomProperties;
get flexProperties(): any;
roomChatMessages: ChatMessage[];
get chatMessageList(): any[];
unreadMessageCount: number;
joined: boolean;
roomJoined: boolean;
time: number;
isStudentChatAllowed: boolean | undefined;
windowWidth: number;
windowHeight: number;
trophyFlyout: TrophyType;
/**
* 当前时间(校验之后的)
*/
get calibratedTime(): number;
timeShift: number;
classroomSchedule?: ClassroomScheduleType;
get studentsReward(): Record<string, ProcessType> | {};
get roomReward(): RoomRewardType | {
room: number;
config: {
roomLimit: number;
};
};
get liveClassStatus(): {
classState: string;
duration: number;
};
/**
* 当前所属于状态的时间段 单位:ms
* 课程开始之前表示:距离开始上课多久
* 课程正在开始表示:已经上课多久
* 课程已经结束表示:已经下课多久
*/
get classTimeDuration(): number;
get isClassroomDelayed(): boolean;
showTranslate: boolean;
timer: any;
trophyNumber: number;
get isTrophyLimit(): boolean;
unwind: MinimizeType[];
isBespread: boolean;
isRed: boolean;
additional: boolean;
isJoiningRoom: boolean;
roomApi: RoomApi;
disposers: IReactionDisposer[];
appStore: EduScenarioAppStore;
get sceneStore(): import("./scene").SceneStore;
smallClassStore: SmallClassStore;
coVideoUsers: Record<string, any>;
constructor(appStore: EduScenarioAppStore);
reset(): void;
addChatMessage(args: any): void;
get roomManager(): import("agora-rte-sdk").EduClassroomManager;
get userUuid(): string;
get isTeacher(): boolean;
sendMessage(message: any): Promise<{
id: string;
ts: number;
text: any;
account: string;
sender: boolean;
messageId: any;
fromRoomName: string;
}>;
sendMessageToConversation(message: any, userUuid: string): Promise<{
id: string;
ts: number;
text: any;
account: string;
sender: boolean;
messageId: any;
fromRoomName: string;
}>;
setMessageList(messageList: ChatMessage[]): void;
getConversationList(data: {
nextId: string;
sort: number;
}): Promise<any>;
getHistoryChatMessage(data: {
nextId: string;
sort: number;
}): Promise<any>;
getConversationHistoryChatMessage(data: {
nextId: string;
sort: number;
studentUuid: string;
}): Promise<any>;
roomChatConversations: ChatConversation[];
get chatConversationList(): any[];
addConversationChatMessage(args: any, conversation: any): void;
getConversation(userUuid: string): ChatConversation | null;
sendReward(userUuid: string, reward: number): Promise<any>;
kickOutOnce(userUuid: string, roomUuid: string): Promise<void>;
kickOutBan(userUuid: string, roomUuid: string): Promise<void>;
tickClassroom(): void;
chatIsBanned(isStudentChatAllowed: boolean): void;
checkClassroomNotification(): Promise<void>;
get roomInfo(): import("../api/declare").RoomInfo;
resetUnreadMessageCount(): void;
incrementUnreadMessageCount(): void;
get delay(): string;
isBigClassStudent(): boolean;
updateRewardInfo(): void;
get eduManager(): import("agora-rte-sdk").EduManager;
getSessionConfig(): {
sceneType: number;
userRole: string;
};
getRoleEnumValue(userRole: string): EduRoleTypeEnum;
get videoEncoderConfiguration(): import("./scene").SceneVideoConfiguration;
pluginRoomProperties(extApp: IAgoraExtApp): any;
joining: boolean;
join(): Promise<void>;
onClassStateChanged(state: EduClassroomStateEnum): Promise<void>;
get isAssistant(): boolean;
getRewardByUid(uid: string): number;
leave(): Promise<void>;
noticeQuitRoomWith(quickType: QuickTypeEnum): void;
endRoom(): Promise<void>;
get signalLevel(): number;
get navigationState(): {
cpuUsage: number;
isStarted: boolean;
title: string;
signalQuality: any;
networkLatency: number;
networkQuality: string;
packetLostRate: number;
isNative: boolean;
};
handleCause(operator: unknown, { oldRoomProperties, newRoomProperties }: {
oldRoomProperties: any;
newRoomProperties: any;
}): void;
startJoining(): void;
stopJoining(): void;
updateFlexProperties(properties: any, cause: any): Promise<any>;
startCarousel({ range, type, interval, }: {
range: number;
type: number;
interval: number;
}): Promise<void>;
stopCarousel(): Promise<void>;
}
export {};