/// <reference types="node" />
import { EventEmitter } from 'events';
import { RTMWrapper } from './../core/rtm/index';
import { MediaService } from '../core/media-service';
import { EduClassroomManager } from '../room/edu-classroom-manager';
import { EduConfiguration } from '../interfaces';
import { EduClassroomDataController } from '../room/edu-classroom-data-controller';
import { AgoraWebStreamCoordinator } from '../core/media-service/web/coordinator';
export declare type ClassroomInitParams = {
    roomUuid: string;
    roomName: string;
};
export declare type ClassRoomAuthorization = string;
export declare class EduManager extends EventEmitter {
    private static enable;
    static _debug: boolean;
    private apiService;
    _rtmWrapper?: RTMWrapper;
    readonly config: EduConfiguration;
    private _classroomMap;
    _ended: boolean;
    _dataBuffer: Record<string, EduClassroomDataController>;
    readonly _mediaService: MediaService;
    private _sessionId;
    constructor(config: EduConfiguration);
    updateRtmConfig(info: {
        rtmUid: string;
        rtmToken: string;
    }): void;
    private get rtmWrapper();
    get rtcSid(): string;
    get rtmSid(): string;
    get vid(): number;
    get mediaService(): MediaService;
    get sessionId(): string;
    static init(config: EduConfiguration): EduManager;
    static enableDebugLog(enable: boolean): void;
    static isElectron: boolean;
    static useElectron(): void;
    static uploadLog(roomUuid: string): Promise<any>;
    private prepareLogin;
    private fire;
    private _rtmConnectionState;
    get rtmConnectionState(): string;
    get streamCoordinator(): AgoraWebStreamCoordinator | undefined;
    login(userUuid: string): Promise<void>;
    _login(userUuid: string): Promise<void>;
    logout(): Promise<void>;
    createClassroom(params: ClassroomInitParams): EduClassroomManager;
}
