import { LocalUserRenderer, EduUser, EduStream, EduClassroomManager, MediaService, AgoraWebRtcWrapper } from 'agora-rte-sdk';
import { EduScenarioAppStore } from '.';
import { RoomApi } from '../services/room-api';
import { Mutex } from '../utilities/mutex';
import { RecordState, RecordConfig } from '../api/declare';
export declare type SceneVideoConfiguration = {
    width: number;
    height: number;
    frameRate: number;
};
export declare class SceneStore {
    readonly mutex: Mutex;
    cameraLock: boolean;
    microphoneLock: boolean;
    appStore: EduScenarioAppStore;
    constructor(appStore: EduScenarioAppStore);
    get mediaService(): MediaService;
    get web(): AgoraWebRtcWrapper;
    get isWeb(): boolean;
    get isElectron(): boolean;
    lockCamera(): void;
    unLockCamera(): void;
    get roomManager(): EduClassroomManager;
    get eduManager(): import("agora-rte-sdk").EduManager;
    _microphoneTrack?: any;
    _cameraRenderer?: LocalUserRenderer;
    _screenVideoRenderer?: LocalUserRenderer;
    userList: EduUser[];
    _streamList: EduStream[];
    _delay: number;
    joinedRTC: boolean;
    recordState: RecordState;
    recordStartTime: number;
    get videoEncoderConfiguration(): SceneVideoConfiguration;
    get totalVolume(): number;
    get screenShareStreamList(): EduStream[];
    get streamList(): EduStream[];
    get remoteUsersRenderer(): any[];
    get screenVideoRenderer(): LocalUserRenderer | undefined;
    get cameraRenderer(): LocalUserRenderer | undefined;
    get roomInfo(): import("../api/declare").RoomInfo;
    get roomApi(): RoomApi;
    get delay(): string;
    get messageStore(): import("./message").MessageStore;
    get mediaStore(): import("./media").MediaStore;
    get roomStore(): import("./room").RoomStore;
    get isRecordingByMyself(): boolean;
    updateStreamList(streamList: EduStream[]): void;
    updateUserList(userList: EduUser[]): void;
    reset(): Promise<void>;
    resetCameraTrack(): void;
    resetMicrophoneTrack(): void;
    resetScreenTrack(): void;
    openCamera(option?: SceneVideoConfiguration): Promise<void>;
    closeCamera(): Promise<void>;
    lockMicrophone(): void;
    unLockMicrophone(): void;
    openMicrophone(): Promise<void>;
    closeMicrophone(): Promise<void>;
    joinRTC(args: any): Promise<void>;
    leaveRtc(): Promise<void>;
    isLocalStream(stream: EduStream): boolean;
    fixNativeVolume(volume: number): number;
    fixWebVolume(volume: number): number;
    startRecording(config?: RecordConfig): Promise<any>;
    stopRecording(): Promise<void>;
    getRecordFiles(): Promise<any>;
}
