import { TUIRole, TUIRoomInfo, TUISeatMode, TUIVideoQuality, TUIVideoStreamType, TUIMediaDeviceType, TUIInvitationStatus } from '@tencentcloud/tuiroom-engine-js';

export type StreamInfo = {
    userId: string;
    streamType: TUIVideoStreamType;
    hasAudioStream?: boolean;
    hasVideoStream?: boolean;
    isLoading?: boolean;
    playDomList?: HTMLElement[];
};
export type UserInfo = {
    userId: string;
    userName?: string;
    avatarUrl?: string;
    nameCard?: string;
    hasAudioStream?: boolean;
    hasVideoStream?: boolean;
    hasScreenStream?: boolean;
    isMessageDisabled?: boolean;
    userRole?: TUIRole;
    onSeat?: boolean;
    isRequestingUserOpenMic?: boolean;
    requestUserOpenMicRequestId?: string;
    isRequestingUserOpenCamera?: boolean;
    requestUserOpenCameraRequestId?: string;
    isUserApplyingToAnchor?: boolean;
    applyToAnchorRequestId?: string;
    applyToAnchorTimestamp?: number;
    isInvitingUserToAnchor?: boolean;
    inviteToAnchorRequestId?: string;
    isInRoom?: boolean;
    status?: TUIInvitationStatus;
};
interface RoomState {
    userInfoObj: Record<string, UserInfo>;
    streamInfoObj: Record<string, StreamInfo>;
    userVolumeObj: Record<string, number>;
    canControlSelfAudio: boolean;
    canControlSelfVideo: boolean;
    localVideoQuality: TUIVideoQuality;
    currentCameraId: string;
    currentMicrophoneId: string;
    currentSpeakerId: string;
    cameraList: object[];
    microphoneList: object[];
    speakerList: object[];
    masterUserId: string;
    isMicrophoneDisableForAllUser: boolean;
    isCameraDisableForAllUser: boolean;
    isScreenShareDisableForAllUser: boolean;
    isSeatEnabled: boolean | undefined;
    seatMode: TUISeatMode;
    maxMembersCount: number;
    maxSeatCount: number;
    password: string;
    roomName: string;
    hasOtherScreenShare: boolean;
    isOnStateTabActive: boolean;
    isLocalUserSharing: boolean;
    isWhiteboardVisiable: boolean;
    isSharingScreen: boolean;
    isAnnotationVisiable: boolean;
}
export declare const useRoomStore: import('pinia').StoreDefinition<"room", RoomState, {
    localUser(state: RoomState): UserInfo;
    localStream(state: RoomState): StreamInfo;
    localScreenStream(state: RoomState): StreamInfo;
    isMaster(state: RoomState): boolean;
    isAdmin(): boolean;
    isGeneralUser(): boolean;
    isFreeSpeakMode(): boolean;
    isSpeakAfterTakingSeatMode(): boolean;
    isAnchor(): boolean | undefined;
    isAudience(): boolean | undefined;
    isLocalAudioIconDisable(): boolean;
    isLocalVideoIconDisable(): boolean;
    streamList(): Array<StreamInfo>;
    remoteStreamList(): Array<StreamInfo>;
    cameraStreamList(): Array<StreamInfo>;
    streamNumber(): number;
    userList(): Array<UserInfo>;
    userNumber(): number;
    remoteUserList(): Array<UserInfo>;
    remoteEnteredUserList(): Array<UserInfo>;
    remoteNotEnteredUserList(): Array<UserInfo>;
    remoteAnchorList(): Array<UserInfo>;
    generalUserScreenStreamList(): Array<UserInfo>;
    anchorUserList(): Array<UserInfo>;
    applyToAnchorList(): Array<UserInfo>;
    defaultStreamType(): TUIVideoStreamType;
    getDisplayName(): (userId: string) => string;
}, {
    getUserName(userId: string): string;
    getUserRole(userId: string): TUIRole | undefined;
    addUserInfo(userInfo: UserInfo): void;
    addRemoteUser(userInfo: UserInfo): void;
    updateUserInfo(userInfo: UserInfo): void;
    removeUserInfo(userId: string): void;
    addStreamInfo(userId: string, streamType: TUIVideoStreamType): void;
    updateStreamInfo(streamInfo: StreamInfo): void;
    removeStreamInfo(userId: string, streamType: TUIVideoStreamType): void;
    getStreamInfo(userId: string, streamType: TUIVideoStreamType): StreamInfo | undefined;
    setAudioVolume(audioVolumeArray: []): void;
    setCurrentDeviceId(type: TUIMediaDeviceType, deviceId: string): void;
    setCurrentCameraId(deviceId: string): void;
    setCurrentMicrophoneId(deviceId: string): void;
    setCurrentSpeakerId(deviceId: string): void;
    setRoomInfo(roomInfo: TUIRoomInfo): void;
    setDisableMicrophoneForAllUserByAdmin(isDisable: boolean): void;
    setDisableCameraForAllUserByAdmin(isDisable: boolean): void;
    setDisableScreenShareForAllUserByAdmin(isDisable: boolean): void;
    setMasterUserId(userId: string): void;
    setCanControlSelfAudio(capability: boolean): void;
    setCanControlSelfVideo(capability: boolean): void;
    updateVideoQuality(quality: TUIVideoQuality): void;
    setDeviceList(type: TUIMediaDeviceType, deviceList: {
        deviceId: string;
        deviceName: string;
    }[]): void;
    setCameraList(deviceList: {
        deviceId: string;
        deviceName: string;
    }[]): void;
    setMicrophoneList(deviceList: {
        deviceId: string;
        deviceName: string;
    }[]): void;
    setSpeakerList(deviceList: {
        deviceId: string;
        deviceName: string;
    }[]): void;
    setMuteUserChat(userId: string, muted: boolean): void;
    setRemoteUserRole(userId: string, role: TUIRole): void;
    setRequestUserOpenMic(options: {
        userId: string;
        isRequesting: boolean;
        requestId?: string;
    }): void;
    setRequestUserOpenCamera(options: {
        userId: string;
        isRequesting: boolean;
        requestId?: string;
    }): void;
    addApplyToAnchorUser(options: {
        userId: string;
        requestId: string;
        timestamp: number;
    }): void;
    removeApplyToAnchorUser(requestId: string): void;
    addInviteToAnchorUser(options: {
        userId: string;
        requestId: string;
    }): void;
    removeInviteToAnchorUser(userId: string): void;
    setHasOtherScreenShare(hasScreenShare: boolean): void;
    setOnStageTabStatus(isOnStateTabActive: boolean): void;
    updateInviteeList(userList: any[]): void;
    reset(): void;
}>;
export {};
