import { RoomStore } from './room';
import { EduStream, EduUser, EduRoleTypeEnum } from 'agora-rte-sdk';
import { EduMediaStream } from './scene';
import { DeviceStateEnum } from '../types';
export declare type RosterUserInfo = {
    name: string;
    uid: string;
    online: boolean;
    isLocal: boolean;
    onPodium: boolean;
    micDevice: DeviceStateEnum;
    cameraDevice: DeviceStateEnum;
    cameraEnabled: boolean;
    chatEnabled: boolean;
    micEnabled: boolean;
    whiteboardGranted: boolean;
    hasStream: boolean;
    canCoVideo: boolean;
    canGrantBoard: boolean;
    stars: number;
    disabled: boolean;
};
export declare class SmallClassStore {
    private roomStore;
    private appStore;
    constructor(roomStore: RoomStore);
    roleToString(role: EduRoleTypeEnum): "invisible" | "assistant" | "teacher" | "student";
    get onlineUserCount(): number;
    get processUserCount(): number;
    get role(): "invisible" | "assistant" | "teacher" | "student";
    get teacherInfo(): EduUser | undefined;
    get sceneStore(): import("./scene").SceneStore;
    get teacherName(): string;
    get studentStreams(): EduMediaStream[];
    get teacherUuid(): string;
    get isCoVideo(): boolean;
    get roomInfo(): import("..").RoomInfo;
    get roomUuid(): string;
    get acceptedUserList(): {
        userUuid: string;
        userName: string;
        coVideo: boolean;
    }[];
    get applyCoVideoUserList(): {
        userUuid: string;
        userName: string;
        coVideo: boolean;
    }[];
    get acceptedList(): any;
    get acceptedIds(): any;
    get acceptedCoVideoUserList(): {
        userUuid: string;
        userName: string;
        coVideo: boolean;
    }[];
    sendReward(uid: string): Promise<void>;
    get handsUpStudentList(): {
        userUuid: string;
        userName: string;
        coVideo: boolean;
    }[];
    get studentsMap(): any;
    studentHandsUp(teacherUuid: string): Promise<void>;
    studentCancelHandsUp(): Promise<void>;
    studentDismissHandsUp(teacherUuid: string): Promise<void>;
    teacherAcceptHandsUp(userUuid: string): Promise<void>;
    revokeCoVideo(userUuid: string): Promise<void>;
    teacherRevokeCoVideo(userUuid: string): Promise<any>;
    studentExitCoVideo(): Promise<any>;
    teacherRejectHandsUp(userUuid: string): Promise<void>;
    teacherInviteHandsUp(userUuid: string): Promise<void>;
    checkDisable(user: EduUser, role: EduRoleTypeEnum, stream?: EduStream): boolean;
    transformRosterUserInfo(user: EduUser, role: EduRoleTypeEnum, stream?: EduStream): RosterUserInfo;
    get localUserRosterInfo(): RosterUserInfo;
    get studentInfoList(): EduUser[];
    get bigClassUserList(): any[];
    get rosterUserList(): RosterUserInfo[];
    reset(): void;
    rosterUserExists(userUuid: string): boolean;
    toggleWhiteboardPermission(userUuid: string, grantWhiteboardPermission: boolean): Promise<void>;
    toggleCamera(userUuid: string, enabled: boolean): Promise<void>;
    toggleMic(userUuid: string, enabled: boolean): Promise<void>;
    kick(userUuid: string): Promise<void>;
    handleRosterClick(actionType: string, uid: string): Promise<void>;
    get handsUpState(): "default" | "forbidden" | "actived";
    get teacherHandsUpState(): "default" | "actived";
    get inPrivateConversation(): boolean;
    get hasPrivateConversation(): boolean;
}
