import { AgoraRteEngine, AgoraRteScene } from '../../imports';
import { FcrCoreServiceApi } from '../../service/api';
import { FcrScreenStreamCreateConfig, FcrSize, FcrStreamControl } from '../stream-control/type';
import { FcrScreenSharingState, FcrSharingControl, FcrSharingObserver, FcrWhiteboardState } from './type';
import { FcrPrivilegeControl } from '../privilege-control/type';
import { FcrWhiteboardControl } from '../whiteboard-control-v2/whiteboard-control/type';
import { FcrStreamInfo } from '../../type';
import { FcrCoreEngineConfig, FcrUserControl } from '../..';
import { FcrSharedCache } from '../shared-cache';
import { FcrAnnotationControl } from '../whiteboard-control-v2/annotation-control/type';
export declare class FcrSharingControlImpl implements FcrSharingControl {
    private _scene;
    private _api;
    private _engine;
    private _config;
    private _privilegeControl;
    private _streamControl;
    private _sharedCache;
    private _userControl;
    protected logger: import("agora-foundation/lib/logger/type").Logger;
    private _observable;
    private _annotationControl;
    private _whiteboardControl;
    private _isActive;
    private _shareOwnerId;
    private _shareOwnerStream;
    private _lastScreenSharingState;
    private _lastScreenSharingStreamId;
    private _streamObserver;
    private _sceneObserver;
    private _whiteboardObserver;
    get ownerId(): string;
    get ownerStream(): FcrStreamInfo | null;
    constructor(_scene: AgoraRteScene, _api: FcrCoreServiceApi, _engine: AgoraRteEngine, _config: FcrCoreEngineConfig, _privilegeControl: FcrPrivilegeControl, _streamControl: FcrStreamControl, _sharedCache: FcrSharedCache, _userControl: FcrUserControl);
    startScreenSharing(config: FcrScreenStreamCreateConfig, size?: FcrSize, labels?: Map<string, any>): Promise<string>;
    startWhiteboard(): Promise<void>;
    updateScreenSharing(enableAnnotation: boolean): Promise<void>;
    stop(): Promise<void>;
    getScreenSharingState(): FcrScreenSharingState;
    getWhiteboardState(): FcrWhiteboardState;
    getAnnotationControl(): FcrAnnotationControl;
    getSharingWindowSize(): FcrSize | undefined;
    getBoardControl(): FcrWhiteboardControl;
    addObserver(observer: FcrSharingObserver): void;
    removeObserver(observer: FcrSharingObserver): void;
    release(): void;
    private _getPureSceneAnnotationState;
    private _isStreamToHandleScreenSharing;
    private _handleOnStreamsAdded;
    private _handleOnStreamsRemoved;
    private _handleOnScenePropertiesUpdated;
    private _handleOnWhiteboardActive;
    private _handleOnWhiteboardInActive;
    private _getScreenShareStreamByUuid;
    private _notifyScreenSharingUpdated;
    private _addLogObserver;
}
