import { WhiteboardOption } from '@netless/forge-whiteboard';
import type { RTMClient } from 'agora-rtm';
import { AgoraRteScene } from '../../../imports';
import { FcrCoreServiceApi } from '../../../service/api';
import { FcrReturnCode } from '../../../type';
import { FcrSharedCache } from '../../shared-cache';
import { FcrBoardActiveInfo } from '../../whiteboard-control/type';
import { FcrBaseWhiteboardControlImpl } from '../base';
import { FcrBoardMainWindow, FcrBoardRoomConfig } from '../type';
import { FcrBoardConfig, FcrStandaloneWhiteboardControl, FcrWhiteboardControl, FcrWhiteboardObserver } from './type';
export declare class FcrWhiteboardControlImpl extends FcrBaseWhiteboardControlImpl<FcrWhiteboardObserver> implements FcrWhiteboardControl {
    private _scene;
    private _api;
    protected logger: import("agora-foundation/lib/logger/type").Logger;
    private _roomCache;
    private _backgroundColor;
    private _isActive;
    private _ownerId;
    private _preloadLock;
    private _notifyObservers;
    constructor(rtmClient: RTMClient, config: FcrBoardConfig, sharedCache: FcrSharedCache, boardRoomConfigFetcher: () => Promise<FcrBoardRoomConfig>, _scene: AgoraRteScene, _api: FcrCoreServiceApi);
    open(): Promise<FcrBoardMainWindow>;
    close(): Promise<number>;
    release(): Promise<number>;
    active(): Promise<void>;
    inactive(): Promise<void>;
    getBoardActiveInfo(): FcrBoardActiveInfo;
    setBackgroundColor(backgroundColor: string): Promise<FcrReturnCode>;
    getBackgroundColor(): string;
    getActivity(): boolean;
    getOwnerId(): string | null;
    protected getApplicationId(): string;
    private _onScenePropertiesUpdated;
    protected getWhiteboardOption(): WhiteboardOption;
    protected addLogObserver(): void;
}
export declare class FcrStandaloneWhiteboardControlImpl extends FcrBaseWhiteboardControlImpl<FcrWhiteboardObserver> implements FcrStandaloneWhiteboardControl {
    open(): Promise<FcrBoardMainWindow>;
    release(): Promise<number>;
    protected getApplicationId(): string;
    protected getWhiteboardOption(): WhiteboardOption;
}
