UNPKG

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
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>; }