fcr-core
Version:
Core APIs for building online scenes
43 lines (42 loc) • 2.17 kB
TypeScript
import { FcrBaseWhiteboardControl, FcrBaseWhiteboardObserver, FcrBoardMainWindow, FcrObjectForgeInitConfig } from '../type';
import { AgoraRteConnectionState } from 'agora-rte-sdk';
import type { RTMClient } from 'agora-rtm';
import { AgoraObservable, AgoraScheduler } from '../../../imports';
import { FcrBoardConfig } from '../whiteboard-control/type';
import { Room } from '@netless/forge-room';
import { Whiteboard, WhiteboardOption } from '@netless/forge-whiteboard';
import { FcrConnectionState } from '../../../type';
export declare class FcrBaseWhiteboardControlImpl<T extends FcrBaseWhiteboardObserver> implements FcrBaseWhiteboardControl<T> {
protected rtmClient: RTMClient;
protected config: FcrBoardConfig;
protected logger: import("agora-foundation/lib/logger/type").Logger;
protected forgeInitConfigTask: AgoraScheduler.Task;
protected observable: AgoraObservable<T>;
protected boardView: FcrBoardMainWindow | null;
protected boardRoom: Room | null;
protected whiteboard: Whiteboard | null;
protected connectState: FcrConnectionState;
protected forgeInitConfig: FcrObjectForgeInitConfig | null;
protected hasOperationPrivilege: boolean;
private _waitPromise;
private _waitPromiseResolve;
private _waitPromiseReject;
private _openAbortController;
private _isOpen;
constructor(rtmClient: RTMClient, config: FcrBoardConfig, hasOperationPrivilege: boolean, forgeInitConfigFetcher: () => Promise<FcrObjectForgeInitConfig>);
setOperationPrivilege(hasOperationPrivilege: boolean): void;
open(): Promise<FcrBoardMainWindow>;
close(): Promise<void>;
getConnectionState(): AgoraRteConnectionState;
getMainWindow(): FcrBoardMainWindow | null;
addObserver(observer: T): void;
removeObserver(observer: T): void;
protected updateConnectionState(state: FcrConnectionState): void;
protected connect(): Promise<FcrBoardMainWindow>;
protected getApplicationId(): string;
protected getWhiteboardOption(): WhiteboardOption;
protected getBackgroundColor(): string;
protected addLogObserver(): void;
private _checkForConnect;
private _clearWaitPromise;
}