export declare enum TUIErrorCode {
    ERR_SUCC = 0,
    ERR_FAILED = -1,
    ERR_FREQ_LIMIT = -2,
    ERR_REPEAT_OPERATION = -3,
    ERR_SDKAPPID_NOT_FOUND = -1000,
    ERR_INVALID_PARAMETER = -1001,
    ERR_SDK_NOT_INITIALIZED = -1002,
    ERR_PERMISSION_DENIED = -1003,
    ERR_REQUIRE_PAYMENT = -1004,
    ERR_CAMERA_START_FAILED = -1100,
    ERR_CAMERA_NOT_AUTHORIZED = -1101,
    ERR_CAMERA_OCCUPIED = -1102,
    ERR_CAMERA_DEVICE_EMPTY = -1103,
    ERR_MICROPHONE_START_FAILED = -1104,
    ERR_MICROPHONE_NOT_AUTHORIZED = -1105,
    ERR_MICROPHONE_OCCUPIED = -1106,
    ERR_MICROPHONE_DEVICE_EMPTY = -1107,
    ERR_GET_SCREEN_SHARING_TARGET_FAILED = -1108,
    ERR_START_SCREEN_SHARING_FAILED = -1109,
    ERR_ROOM_ID_NOT_EXIST = -2100,
    ERR_OPERATION_INVALID_BEFORE_ENTER_ROOM = -2101,
    ERR_EXIT_NOT_SUPPORTED_FOR_ROOM_OWNER = -2102,
    ERR_OPERATION_NOT_SUPPORTED_IN_CURRENT_ROOM_TYPE = -2103,
    ERR_OPERATION_NOT_SUPPORTED_IN_CURRENT_SPEECH_MODE = -2104,
    ERR_ROOM_ID_INVALID = -2105,
    ERR_ROOM_ID_OCCUPIED = -2106,
    ERR_ROOM_NAME_INVALID = -2107,
    ERR_ALREADY_IN_OTHER_ROOM = -2108,
    ERR_USER_NOT_EXIST = -2200,
    ERR_USER_NOT_ENTERED = -2201,
    ERR_NEED_OWNER_PERMISSION = -2300,
    ERR_NEED_ADMIN_PERMISSION = -2301,
    ERR_REQUEST_NO_PERMISSION = -2310,
    ERR_REQUEST_ID_INVALID = -2311,
    ERR_MAX_SEAT_COUNT_LIMIT = -2340,
    ERR_ALREADY_IN_SEAT = -2341,
    ERR_SEAT_OCCUPIED = -2342,
    ERR_SEAT_LOCKED = -2343,
    ERR_SEAT_INDEX_NOT_EXIST = -2344,
    ERR_USER_NOT_IN_SEAT = -2345,
    ERR_ALL_SEAT_OCCUPIED = -2346,
    ERR_OPEN_MICROPHONE_NEED_SEAT_UNLOCK = -2360,
    ERR_OPEN_MICROPHONE_NEED_PERMISSION_FROM_ADMIN = -2361,
    ERR_OPEN_CAMERA_NEED_SEAT_UNLOCK = -2370,
    ERR_OPEN_CAMERA_NEED_PERMISSION_FROM_ADMIN = -2371,
    ERR_SEND_MESSAGE_DISABLED_FOR_ALL = -2380,
    ERR_SEND_MESSAGE_DISABLED_FOR_CURRENT = -2381
}
export type TUIRoomInfo = {
    roomId: string;
    roomName: string;
    roomType: TUIRoomType;
    speechMode: TUISpeechMode;
    isMicrophoneDisableForAllUser: boolean;
    isCameraDisableForAllUser: boolean;
    isMessageDisableForAllUser: boolean;
    maxSeatCount: number;
    roomOwner: string;
    createTime: number;
    roomMemberCount: number;
};
export type TUILoginUserInfo = {
    userId: string;
    userName: string;
    avatarUrl: string;
    customInfo: Record<string, any>;
};
export type TUISeatLockParams = {
    lockSeat: boolean;
    lockVideo: boolean;
    lockAudio: boolean;
};
export declare enum TUIRole {
    kRoomOwner = 0,
    kAdministrator = 1,
    kGeneralUser = 2
}
/**
 * 消息结构体
 * @typedef {object} TUIMessage
 * @property {string} messageId 消息 Id
 * @property {string} message 消息内容
 * @property {number} timestamp 时间戳信息, 精确到秒
 * @property {TUIRole} userId 用户 Id
 * @property {boolean} userName 用户名称
 * @property {boolean} avatarUrl 用户头像地址
 */
export type TUIMessage = {
    messageId: string;
    message: string;
    timestamp: number;
    userId: string;
    userName: string;
    avatarUrl: string;
};
export declare enum TUIVideoQuality {
    kVideoQuality_360p = 1,
    kVideoQuality_540p = 2,
    kVideoQuality_720p = 3,
    kVideoQuality_1080p = 4
}
export declare enum TUIAudioQuality {
    kAudioProfileSpeech = 0,
    kAudioProfileDefault = 1,
    kAudioProfileMusic = 2
}
export declare enum TUIVideoStreamType {
    kCameraStream = 0,
    kScreenStream = 1,
    kCameraStreamLow = 2
}
export declare enum TUINetworkQuality {
    kQualityUnknown = 0,
    kQualityExcellent = 1,
    kQualityGood = 2,
    kQualityPoor = 3,
    kQualityBad = 4,
    kQualityVeryBad = 5,
    kQualityDown = 6
}
/**
 * 消息结构体
 * @typedef {object} TUINetwork
 * @property {string} userId 用户 Id
 * @property {TUINetworkQuality} quality 网络质量
 * @property {number} upLoss 上行丢包率，单位 (%) 该数值越小越好，目前仅本地用户有该信息
 * @property {TUIRole} downLoss 下行丢包率，单位 (%) 该数值越小越好，目前仅本地用户有该信息
 * @property {Number} delay 网络延迟，单位 ms，目前仅本地用户有该信息
 */
export type TUINetwork = {
    userId: string;
    quality: TUINetworkQuality;
    upLoss: number;
    downLoss: number;
    delay: number;
};
/**
 * 视频编码参数
 * @typedef {object} TUIVideoEncoderParams
 * @property {number} fps 帧率设置
 * @property {number} bitrate 目标编码码率设置
 * @property {TUIVideoQuality} quality 上行视频分辨率
 * @property {TUIVideoQuality} videoResolution 上行视频分辨率（自 v1.6.0 版本开始支持，v1.6.0 之前版本请使用 quality 参数）
 * @property {TUIResolutionMode} resolutionMode 横竖屏模式
 */
export type TUIVideoEncoderParams = {
    quality?: TUIVideoQuality;
    videoResolution: TUIVideoQuality;
    fps: number;
    bitrate: number;
    resolutionMode: TUIResolutionMode;
};
export declare enum TUIRoomType {
    kConference = 1,
    kLivingRoom = 2
}
export declare enum TUISpeechMode {
    kFreeToSpeak = 1,
    kApplyToSpeak = 2,
    kSpeakAfterTakingSeat = 3
}
export declare enum TUIMediaDevice {
    kMicrophone = 1,
    kCamera = 2,
    kScreen = 3
}
export declare enum TUICaptureSourceType {
    kWindow = 0,
    kScreen = 1
}
export declare enum TUIChangeReason {
    kChangedBySelf = 0,
    kChangedByAdmin = 1
}
export declare enum TUIKickedOutOfRoomReason {
    kKickedByAdmin = 0,
    kKickedByLoggedOnOtherDevice = 1,
    kKickedByServer = 2
}
export declare enum TUIRequestAction {
    kInvalidAction = 0,
    kRequestToOpenRemoteCamera = 1,
    kRequestToOpenRemoteMicrophone = 2,
    kRequestToConnectOtherRoom = 3,
    kRequestToTakeSeat = 4,
    kRequestRemoteUserOnSeat = 5,
    kApplyToAdminToOpenLocalCamera = 6,
    kApplyToAdminToOpenLocalMicrophone = 7
}
export declare enum TUIRequestCallbackType {
    kRequestAccepted = 0,
    kRequestRejected = 1,
    kRequestCancelled = 2,
    kRequestTimeout = 3,
    kRequestError = 4
}
export declare enum TRTCRole {
    kAnchor = 0,
    kAudience = 1
}
export declare enum TUIResolutionMode {
    kResolutionMode_Landscape = 0,
    kResolutionMode_Portrait = 1
}
export type TUIUserInfo = {
    userId: string;
    userName: string;
    avatarUrl: string;
    userRole: TUIRole;
    hasAudioStream: boolean;
    hasVideoStream: boolean;
    hasScreenStream: boolean;
    roomCustomInfo: Record<string, any>;
};
export type TUISeatInfo = {
    index: number;
    userId: string;
    locked: boolean;
    isVideoLocked: boolean;
    isAudioLocked: boolean;
};
export type TUIRequest = {
    requestAction: TUIRequestAction;
    timestamp: number;
    requestId: string;
    userId: string;
    content: string;
};
export type TUIRequestCallback = {
    requestCallbackType: TUIRequestCallbackType;
    requestId: string;
    userId: string;
    code: number;
    message: string;
};
/**
 * **TUIRoomEngine 事件列表**<br>
 * @namespace TUIRoomEvents
 * @example
 * import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';
 * const roomEngine = new TUIRoomEngine();
 * roomEngine.on(TUIRoomEvents.onError, (error) => {
 *  console.log('roomEngine.error', error);
 * })
 */
export declare enum TUIRoomEvents {
    /**
     *
     * @description 错误事件
     * @event TUIRoomEvents#onError
     * @param {object} options
     * @param {number} options.code 错误代码
     * @param {string} options.message 错误信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onError, (error) => {
     *  console.log('TUIRoomError error', error);
     * })
     */
    onError = "onError",
    /**
     * @description 踢出房间事件
     * @default 'onKickedOutOfRoom'
     * @event TUIRoomEvents#onKickedOutOfRoom
     * @param {object} options
     * @param {string} options.roomId 房间号
     * @param {TUIKickedOutOfRoomReason} options.reason 用户被踢出房间枚举
     * @param {string} options.message 踢出房间信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onKickedOutOfRoom, ({ roomId, reason, message }) => {
     *   console.log('roomEngine.onKickedOutOfRoom', roomId, reason, message);
     * });
     */
    onKickedOutOfRoom = "onKickedOutOfRoom",
    /**
     * @description 当前用户被踢下线
     * @default 'onKickedOffLine'
     * @event TUIRoomEvents#onKickedOffLine
     * @param {string} options.message 用户被踢下线信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onKickedOffLine, ({ message }) => {
     *   console.log('roomEngine.onKickedOffLine', message);
     * });
     */
    onKickedOffLine = "onKickedOffLine",
    /**
     * @description userSig 过期事件
     * @default 'onUserSigExpired'
     * @event TUIRoomEvents#onUserSigExpired
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserSigExpired, () => {
     *   console.log('roomEngine.onUserSigExpired');
     * });
     */
    onUserSigExpired = "onUserSigExpired",
    /**
     * @description 主持人销毁房间事件
     * @default 'onRoomDismissed'
     * @event TUIRoomEvents#onRoomDismissed
     * @param {object} options
     * @param {string} options.roomId 房间号
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRoomDismissed, ({ roomId }) => {
     *   console.log('roomEngine.onRoomDismissed', roomId);
     * });
     */
    onRoomDismissed = "onRoomDismissed",
    /**
     * @description 房间名字修改事件
     * @default 'onRoomNameChanged'
     * @event TUIRoomEvents#onRoomChanged
     * @param {object} options
     * @param {string} options.roomName 房间名字
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRoomNameChanged, ({ roomId, roomName }) =>{
     *    console.log('roomEngine.onRoomNameChanged', roomId, roomName);
     * });
     */
    onRoomNameChanged = "onRoomNameChanged",
    /**
     * @description 房间模式修改事件
     * @default 'onRoomSpeechModeChanged'
     * @event TUIRoomEvents#onRoomSpeechModeChanged
     * @param {object} options
     * @param {TUISpeechMode} options.speechMode 房间模式
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRoomSpeechModeChanged, ({ roomId, speechMode }) =>{
     *    console.log('roomEngine.onRoomSpeechModeChanged', roomId, speechMode);
     * });
     */
    onRoomSpeechModeChanged = "onRoomSpeechModeChanged",
    /**
     * @description 所有成员摄像头使用权限改变事件
     * @default 'onAllUserCameraDisableChanged'
     * @event TUIRoomEvents#onAllUserCameraDisableChanged
     * @param {object} options
     * @param {boolean} options.isDisable 是否允许使用摄像头
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onAllUserCameraDisableChanged, ({ isDisable }) =>{
     *    console.log('roomEngine.onAllUserCameraDisableChanged', isDisable);
     * });
     */
    onAllUserCameraDisableChanged = "onAllUserCameraDisableChanged",
    /**
     * @description 所有成员麦克风使用权限改变事件
     * @default 'onAllUserMicrophoneDisableChanged'
     * @event TUIRoomEvents#onAllUserMicrophoneDisableChanged
     * @param {object} options
     * @param {boolean} options.isDisable 是否允许使用麦克风
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, ({ isDisable }) =>{
     *    console.log('roomEngine.onAllUserMicrophoneDisableChanged', isDisable);
     * });
     */
    onAllUserMicrophoneDisableChanged = "onAllUserMicrophoneDisableChanged",
    /**
     * @description 所有成员发送消息权限改变事件
     * @default 'onSendMessageForAllUserDisableChanged'
     * @event TUIRoomEvents#OnSendMessageForAllUserDisableChanged
     * @param {object} options
     * @param {boolean} options.isDisable 是否被允许
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, ({ isDisable }) =>{
     *    console.log('roomEngine.onSendMessageForAllUserDisableChanged', isDisable);
     * });
     */
    onSendMessageForAllUserDisableChanged = "onSendMessageForAllUserDisableChanged",
    /**
     * @description 房间最大麦位数修改事件
     * @default 'onRoomMaxSeatCountChanged'
     * @event TUIRoomEvents#onRoomMaxSeatCountChanged
     * @param {object} options
     * @param {boolean} options.maxSeatNumber 最大麦位数
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRoomMaxSeatCountChanged, ({ maxSeatNumber }) =>{
     *    console.log('roomEngine.onRoomMaxSeatCountChanged', maxSeatNumber);
     * });
     */
    onRoomMaxSeatCountChanged = "onRoomMaxSeatCountChanged",
    /**
     * @description 远端用户进入房间事件
     * @default 'onRemoteUserEnterRoom'
     * @event TUIRoomEvents#onRemoteUserEnterRoom
     * @param {object} options
     * @param {string} options.roomId 房间号
     * @param {TUIUserInfo} options.userInfo 用户信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRemoteUserEnterRoom, ({ roomId, userInfo }) => {
     *   console.log('roomEngine.onRemoteUserEnterRoom', roomId, userInfo);
     * });
     */
    onRemoteUserEnterRoom = "onRemoteUserEnterRoom",
    /**
     * @description 远端用户离开房间事件
     * @default 'onRemoteUserLeaveRoom'
     * @event TUIRoomEvents#onRemoteUserLeaveRoom
     * @param {object} options
     * @param {string} options.roomId 房间号
     * @param {TUIUserInfo} options.userInfo 用户信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRemoteUserLeaveRoom, ({ roomId, userInfo }) => {
     *   console.log('roomEngine.onRemoteUserLeaveRoom', roomId, userInfo);
     * });
     */
    onRemoteUserLeaveRoom = "onRemoteUserLeaveRoom",
    /**
     * @description 用户角色改变事件
     * @default 'onKickedOutOfRoom'
     * @event TUIRoomEvents#onUserRoleChanged
     * @param {object} options
     * @param {string} options.userId 用户Id
     * @param {TUIRole} options.userRole 用户变更后的角色
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserRoleChanged, ({ userId, userRole }) => {
     *   console.log('roomEngine.onUserRoleChanged', userId, userRole);
     * });
     */
    onUserRoleChanged = "onUserRoleChanged",
    /**
     * @description 用户视频状态改变事件
     * @default 'onUserVideoStateChanged'
     * @event TUIRoomEvents#onUserVideoStateChanged
     * @param {object} options
     * @param {string} options.userId 用户Id
     * @param {TUIVideoStreamType} options.streamType 用户流类型
     * @param {boolean} options.hasVideo 是否有视频流
     * @param {TUIChangeReason} options.reason 变更原因
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserVideoStateChanged, ({ userId, streamType, hasVideo, reason }) => {
     *   console.log('roomEngine.onUserVideoStateChanged', userId, streamType, hasVideo, reason);
     * });
     */
    onUserVideoStateChanged = "onUserVideoStateChanged",
    /**
     * @description 用户音频状态改变事件
     * @default 'onUserAudioStateChanged'
     * @event TUIRoomEvents#onUserAudioStateChanged
     * @param {object} options
     * @param {string} options.userId 用户Id
     * @param {boolean} options.hasVideo 是否有音频流
     * @param {TUIChangeReason} options.reason 原因
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserAudioStateChanged, ({ userId, hasAudio, reason }) => {
     *   console.log('roomEngine.onUserAudioStateChanged', userId, hasAudio, reason);
     * });
     */
    onUserAudioStateChanged = "onUserAudioStateChanged",
    /**
     * @description 用户发送消息状态改变事件
     * @default 'onSendMessageForUserDisableChanged'
     * @event TUIRoomEvents#onSendMessageForUserDisableChanged
     * @param {object} options
     * @param {string} options.userId 成员 Id
     * @param {boolean} options.isDisable 是否被允许
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onSendMessageForUserDisableChanged, ({ userId, isDisable }) =>{
     *    console.log('roomEngine.onSendMessageForUserDisableChanged', isDisable);
     * });
     */
    onSendMessageForUserDisableChanged = "onSendMessageForUserDisableChanged",
    /**
     * @description 用户音量改变事件
     * @default 'onUserVoiceVolumeChanged'
     * @event TUIRoomEvents#onUserVoiceVolumeChanged
     * @param {object} options
     * @param {Array<TRTCVolumeInfo>} options.userVolumeList 房间内所有用户的音量, 包含 userId 及 volume 信息，volume 区间为 1～100;
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserVoiceVolumeChanged, ({ userVolumeList }) => {
     *   userVolumeList.forEach(userVolume => {
     *     console.log('roomEngine.onUserVoiceVolumeChanged', userVolume.userId, userVolume.volume);
     *   })
     * });
     */
    onUserVoiceVolumeChanged = "onUserVoiceVolumeChanged",
    /**
     * @description 用户网络质量改变事件
     * @default 'onUserNetworkQualityChanged'
     * @event TUIRoomEvents#onUserNetworkQualityChanged
     * @param {object} options
     * @param {TUINetwork} options.userNetworkList 网络质量信息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserNetworkQualityChanged, ({ userNetworkList }) => {
     *   userNetworkList.forEach(userNetwork => {
     *     console.log('roomEngine.onUserNetworkQualityChanged',
     *        userNetwork.userId, userNetwork.quality, userNetwork.upLoss, userNetwork.downLoss, userNetwork.delay);
     *   })
     * });
     */
    onUserNetworkQualityChanged = "onUserNetworkQualityChanged",
    /**
     * @description 麦位列表改变事件
     * @default 'onSeatListChanged'
     * @event TUIRoomEvents#onSeatListChanged
     * @param {object} options
     * @param {Array<TUISeatInfo>} options.seatList 麦位列表
     * @param {Array<TUISeatInfo>} options.seatedList 新增麦位列表
     * @param {Array<TUISeatInfo>} options.leftList 离开的麦位列表
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onSeatListChanged, ({ seatList, seatedList, leftList }) => {
     *   console.log('roomEngine.onSeatListChanged',seatList, seatedList, leftList);
     * });
     */
    onSeatListChanged = "onSeatListChanged",
    /**
     * @description 当前用户被踢下麦事件
     * @default 'onKickedOffSeat'
     * @event TUIRoomEvents#onKickedOffSeat
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onKickedOffSeat, ({ userId }) => {
     *   console.log('roomEngine.onKickedOffSeat', userId);
     * });
     */
    onKickedOffSeat = "onKickedOffSeat",
    /**
     * @description 请求接收事件
     * @default 'onRequestReceived'
     * @event TUIRoomEvents#onRequestReceived
     * @param {object} options
     * @param {TUIRequest} options.request 请求接收
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRequestReceived, ({ request }) => {
     *   console.log('roomEngine.onRequestReceived', request);
     * });
     */
    onRequestReceived = "onRequestReceived",
    /**
     * @description 请求取消事件
     * @default 'onRequestCancelled'
     * @event TUIRoomEvents#onRequestCancelled
     * @param {object} options
     * @param {string} options.requestId 请求Id
     * @param {string} options.userId 取消请求的用户Id
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onRequestCancelled, ({ requestId, userId }) => {
     *   console.log('roomEngine.onRequestCancelled', requestId, userId);
     * });
     */
    onRequestCancelled = "onRequestCancelled",
    /**
     * @description 接收文本消息事件
     * @default 'onReceiveTextMessage'
     * @event TUIRoomEvents#onReceiveTextMessage
     * @param {object} options
     * @param {string} options.roomId 房间Id
     * @param {TUIMessage} options.message 接收的文本消息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onReceiveTextMessage, ({ roomId, message }) => {
     *   console.log('roomEngine.onReceiveTextMessage', roomId, message);
     * });
     */
    onReceiveTextMessage = "onReceiveTextMessage",
    /**
     * @description 接收自定义消息事件
     * @default 'onReceiveCustomMessage'
     * @event TUIRoomEvents#onReceiveCustomMessage
     * @param {object} options
     * @param {string} options.roomId 房间Id
     * @param {TUIMessage} options.message 接收的自定义消息
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onReceiveCustomMessage, ({ roomId, message }) => {
     *   console.log('roomEngine.onReceiveCustomMessage', roomId, message);
     * });
     */
    onReceiveCustomMessage = "onReceiveCustomMessage",
    /**
     * @description 设备变更事件
     * @default 'onDeviceChange'
     * @event TUIRoomEvents#onDeviceChange
     * @param {object} options
     * @param {string} options.deviceId 设备 Id
     * @param {TRTCDeviceType} options.type 设备类型
     * @param {TRTCDeviceState} options.state 设备变更状态
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onDeviceChange, ({ deviceId, type, state }) => {
     *   console.log('roomEngine.onDeviceChange', deviceId, type, state);
     * });
     */
    onDeviceChange = "onDeviceChange",
    /**
     * @description 屏幕分享停止事件，当用户使用浏览器自带的【停止分享】按钮结束屏幕共享时，该用户会收到 'onUserScreenCaptureStopped' 事件用来修改屏幕共享状态。
     * @default 'onUserScreenCaptureStopped'
     * @event TUIRoomEvents#onUserScreenCaptureStopped
     * @example
     * const roomEngine = new TUIRoomEngine();
     * roomEngine.on(TUIRoomEvents.onUserScreenCaptureStopped, () => {
     *   console.log('roomEngine.onUserScreenCaptureStopped');
     * });
     */
    onUserScreenCaptureStopped = "onUserScreenCaptureStopped"
}
