agora-edu-core-lb
Version:
For publishing npm package agora-edu-core (Web & Electron). Get more information from https://docs.agora.io
58 lines (57 loc) • 2.13 kB
TypeScript
import { AgoraEduEvent } from '../declare';
import { ReactElement } from 'react';
import { EduScenarioAppStore } from '../../stores';
export declare enum EduSDKInternalStateEnum {
Created = "created",
Initialized = "initialized",
Destroyed = "destroyed"
}
export declare type EventCallableFunction = (evt: AgoraEduEvent) => any;
export declare type LifeEventFunction = (...args: any[]) => never;
export declare type ControllerLifeEvents = {
onControllerDestroy: LifeEventFunction;
};
export declare abstract class ClassRoomAbstractStore {
constructor();
destroy: () => Promise<any>;
}
export declare class ClassRoom<T extends ClassRoomAbstractStore> {
private readonly store;
private dom;
private readonly controller;
constructor(context: EduSDKController<T>);
destroy(): Promise<void>;
}
export declare class EduSDKController<T extends ClassRoomAbstractStore> {
private room;
private dom;
callback: EventCallableFunction;
globalStore: any;
/**
* onControllerLifeCycle
*/
private onControllerDestroy;
/**
* controller的状态
*/
private _state;
private _lock;
constructor();
get hasCalled(): boolean;
get lock(): boolean;
acquireLock(): () => void;
get isInitialized(): boolean;
getClassRoom(): ClassRoom<T>;
get state(): EduSDKInternalStateEnum;
create(component: ReactElement, dom: HTMLElement, callback: EventCallableFunction): void;
subscribe({ onControllerDestroy }: ControllerLifeEvents): void;
setupStore(context: EduScenarioAppStore): void;
destroy(): Promise<void>;
}
export declare class MainController {
readonly appController: EduSDKController<ClassRoomAbstractStore>;
readonly replayController: EduSDKController<ClassRoomAbstractStore>;
readonly storageController: EduSDKController<ClassRoomAbstractStore>;
constructor(appController?: EduSDKController<ClassRoomAbstractStore>, replayController?: EduSDKController<ClassRoomAbstractStore>, storageController?: EduSDKController<ClassRoomAbstractStore>);
getAppClassRoom(): ClassRoom<ClassRoomAbstractStore>;
}