agora-meeting-sdk
Version:
For publishing npm package agora-metting-sdk (Web). Get more information from https://docs.agora.io
49 lines (48 loc) • 1.84 kB
TypeScript
import { ReactElement } from 'react';
import { RoomCache, AgoraEvent } from '../../../../agora-meeting-core/src';
export declare enum SDKInternalStateEnum {
Created = "created",
Initialized = "initialized",
Destroyed = "destroyed"
}
export declare type EventCallableFunction = (evt: AgoraEvent, cache?: RoomCache) => any;
export declare abstract class RoomAbstractStore {
constructor();
destroy: () => Promise<any>;
}
export declare class Room<T extends RoomAbstractStore> {
private readonly store;
private dom;
private readonly controller;
constructor(context: SDKController<T>);
destroy(): Promise<void>;
}
export declare class SDKController<T extends RoomAbstractStore> {
private room;
private dom;
callback: EventCallableFunction;
_storeDestroy: CallableFunction;
private _state;
private _data;
private _lock;
constructor();
get hasCalled(): boolean;
get lock(): boolean;
get isInitialized(): boolean;
get state(): SDKInternalStateEnum;
acquireLock(): () => void;
getRoom(): Room<T>;
setData(name: string, value: any): void;
getData(name: string): any;
create(component: ReactElement, dom: HTMLElement, callback: EventCallableFunction): void;
bindStoreDestroy(destroy: CallableFunction): void;
destroy(): Promise<void>;
}
export declare class MainController {
readonly appController: SDKController<RoomAbstractStore>;
readonly replayController: SDKController<RoomAbstractStore>;
readonly storageController: SDKController<RoomAbstractStore>;
constructor(appController?: SDKController<RoomAbstractStore>, replayController?: SDKController<RoomAbstractStore>, storageController?: SDKController<RoomAbstractStore>);
getRoom(): Room<RoomAbstractStore>;
}
export declare const controller: MainController;