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

export declare function getNewStreamInfo(userId: string, streamType?: TUIVideoStreamType): {
    userId: string;
    hasAudioStream: boolean;
    hasVideoStream: boolean;
    streamType: TUIVideoStreamType;
    isLoading: boolean;
    playDomMap: Map<any, any>;
    timestamp: number;
};
export declare function getNewUserInfo(userId: string): {
    userId: string;
    userName: string;
    avatarUrl: string;
    nameCard: string;
    hasAudioStream: boolean;
    hasVideoStream: boolean;
    hasScreenStream: boolean;
    isMessageDisabled: boolean;
    userRole: TUIRole;
    onSeat: boolean;
    isUserApplyingToAnchor: boolean;
    isInvitingUserToAnchor: boolean;
    isInRoom: boolean;
    status: TUIInvitationStatus;
    timestamp: number;
};
export type StreamInfo = {
    userId: string;
    streamType: TUIVideoStreamType;
    hasAudioStream?: boolean;
    hasVideoStream?: boolean;
    isLoading?: boolean;
    playDomMap?: Map<HTMLElement, TUIVideoStreamType>;
    timestamp?: number;
};
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;
    timestamp?: number;
};
interface RoomState {
    userInfoObj: Record<string, UserInfo>;
    streamInfoObj: Record<string, StreamInfo>;
    userVolumeObj: Record<string, number>;
    currentSpeakerInfo: Record<string, string>;
    masterUserId: string;
    isMicrophoneDisableForAllUser: boolean;
    isCameraDisableForAllUser: boolean;
    isScreenShareDisableForAllUser: boolean;
    isSeatEnabled: boolean | undefined;
    seatMode: TUISeatMode;
    maxMembersCount: number;
    maxSeatCount: number;
    password: string;
    roomName: string;
    roomMemberCount: number;
    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 | undefined;
    localScreenStream(state: RoomState): StreamInfo | undefined;
    isMaster(state: RoomState): boolean;
    isAdmin(): boolean;
    isGeneralUser(): boolean;
    isFreeSpeakMode(): boolean;
    isSpeakAfterTakingSeatMode(): boolean;
    isAnchor(): boolean | undefined;
    isAudience(): boolean | undefined;
    streamList(): Array<StreamInfo>;
    remoteStreamList(): Array<StreamInfo>;
    cameraStreamList(): Array<StreamInfo>;
    remoteScreenStream(): StreamInfo | undefined;
    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;
    setCurrentSpeakerInfo(speakerInfo: Record<string, string>): void;
    setRoomInfo(roomInfo: Partial<TUIRoomInfo>): void;
    setRoomMemberCount(count: number): void;
    setDisableMicrophoneForAllUserByAdmin(isDisable: boolean): void;
    setDisableCameraForAllUserByAdmin(isDisable: boolean): void;
    setDisableScreenShareForAllUserByAdmin(isDisable: boolean): void;
    setMasterUserId(userId: 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;
    setOnStageTabStatus(isOnStateTabActive: boolean): void;
    updateInviteeList(userList: any[]): void;
    reset(): void;
    resetRoomData(): void;
}>;
export {};
