import { LocalUserRenderer } from 'agora-rte-sdk';
import { EduScenarioAppStore } from './index';
import { LocalDeviceState, DeviceTypeEnum, DevicePermission, NetworkQualityLevel } from '../api/declare';
declare type LocalPacketLoss = {
    audioStats: {
        audioLossRate: number;
    };
    videoStats: {
        videoLossRate: number;
    };
};
export declare class MediaStore {
    private appStore;
    private intervalBizLogger;
    id: string;
    constructor(appStore: EduScenarioAppStore);
    get mediaService(): import("agora-rte-sdk").MediaService;
    private mediaServiceListen;
    handleNetworkQuality(evt: any): void;
    private remoteMaxPacketLoss;
    checkDevicePermission(device: DeviceTypeEnum): DevicePermission.approveNeed | DevicePermission.granted | undefined;
    reset(): void;
    remoteUsersRenderer: any[];
    remoteVideoStats: Map<string, any>;
    signalStatus: any[];
    cpuUsage: number;
    _delay: number;
    localPacketLoss: LocalPacketLoss;
    totalVolume: number;
    speakers: Map<number, number>;
    networkQuality: NetworkQualityLevel;
    _screenVideoRenderer?: LocalUserRenderer;
    micLocalDeviceState: LocalDeviceState;
    cameraLocalDeviceState: LocalDeviceState;
    micApprovingCountdown: number;
    cameraApprovingCountdown: number;
    get delay(): number;
    get localPacketLostRate(): number;
    get screenStore(): import("./screen").ScreenStore;
    get renderStore(): import("./render").RenderStore;
    get screenVideoRenderer(): LocalUserRenderer | undefined;
    get roomApi(): import("../services/room-api").RoomApi;
    get roomStore(): import("./room").RoomStore;
    get pretestStore(): import("./pretest").PretestStore;
    get roomInfo(): import("../api/declare").RoomInfo;
    get hasCameraAccess(): boolean;
    get hasMicAccess(): boolean;
    get sceneStore(): import("./scene").SceneStore;
    get userStore(): import("./user").UserStore;
    get roomProperties(): {
        im: any;
        userPermission: {
            micAccess: boolean;
            cameraAccess: boolean;
        };
        roomInfo: {
            roomId: string;
            roomName: string;
            roomPassword: string;
        };
        share: {
            type: import("./room").ShareType;
            screen: {
                ownerInfo: import("../api/declare").UserInfo;
                streamInfo: any;
            };
        };
        board: {
            info: {
                boardId: string;
                boardToken: string;
                appIdentifier: string;
            };
            state: {
                follow: number;
                grantUsers: string[];
            };
            ownerInfo: import("../api/declare").UserInfo;
        };
        schedule: {
            state: import("./room").RoomState;
        };
        record: {
            ownerInfo: import("../api/declare").UserInfo;
            state: number;
            recordId: string;
            recordingTime: number;
            startTime?: number | undefined;
            sid: string;
            resourceId: string;
        };
        processes: {
            micAccess: any;
            cameraAccess: any;
        };
        flexProps?: any;
    };
    get messageStore(): import("./message").MessageStore;
    updateNetworkPacketLostRate(localPacketLoss: unknown): void;
    updateSignalStatusWithRemoteUser(mixSignalStatus: any[]): void;
    updateSpeaker(uid: number, value: number): void;
    updateRemoteVideoStats(uid: string, stats: any): void;
    updateNetworkQuality(v: NetworkQualityLevel): void;
    /** 打开本地摄像头/麦克风 */
    openLocalDevice(device: DeviceTypeEnum): Promise<void>;
    /** 申请打开设备 */
    applyOpenLocalDevice(device: DeviceTypeEnum): Promise<void>;
    /** 关闭本地摄像头/麦克风 */
    closeLocalDevice(type: DeviceTypeEnum): Promise<void>;
    subscribeVideo(streamId: string): void;
    unSubscribeVideo(streamId: string): void;
    subscribeAudio(streamId: string): void;
    unSubscribeAudio(streamId: string): void;
}
export {};
