//
//  HWMSDKConfService.h
//  HWMSDKSDK
//
//  Automatically generated file. DO NOT MODIFY!!!
//

#import <Foundation/Foundation.h>
#import "HWMSDKCommonDefine.h"
#import "HWMSDKAllModelIndex.h"

NS_ASSUME_NONNULL_BEGIN

typedef void(^HWMSDKJoinConfByIdSuccessBlock) (HWMSDKJoinConfResultInfoModel * joinConfResultInfo);
typedef void(^HWMSDKJoinConfByIdFailedBlock) (NSError * _Nullable error, HWMSDKJoinConfFailedInfoModel * joinConfFailedInfo);

typedef void(^HWMSDKJoinConfAnonymouslyByIdSuccessBlock) (HWMSDKJoinConfResultInfoModel * joinConfResultInfo);
typedef void(^HWMSDKJoinConfAnonymouslyByIdFailedBlock) (NSError * _Nullable error, HWMSDKJoinConfFailedInfoModel * joinConfFailedInfo);

typedef void(^HWMSDKStartProjectionSuccessBlock) (HWMSDKStartProjectionResultModel * startProjectionResult);
typedef void(^HWMSDKStartProjectionFailedBlock) (NSError * _Nullable error, HWMSDKStartProjectionFailedInfoModel * startProjectionFailedInfo);

typedef void(^HWMSDKJoinBreakoutConfByIdSuccessBlock) (HWMSDKJoinConfResultInfoModel * joinConfResultInfo);
typedef void(^HWMSDKJoinBreakoutConfByIdFailedBlock) (NSError * _Nullable error, HWMSDKJoinConfFailedInfoModel * joinConfFailedInfo);

typedef void(^HWMSDKReturnMainconfSuccessBlock) (HWMSDKJoinConfResultInfoModel * joinConfResultInfo);
typedef void(^HWMSDKReturnMainconfFailedBlock) (NSError * _Nullable error, HWMSDKJoinConfFailedInfoModel * joinConfFailedInfo);

typedef void(^HWMSDKQueryVmrInfoSuccessBlock) (HWMSDKVmrInfoModel * personalVmrInfo, HWMSDKVmrInfoListModel * cloudVmrList);
typedef void(^HWMSDKQueryVmrInfoFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKQueryConfInfoSuccessBlock) (HWMSDKConfDetailModel * confDetailInfo);
typedef void(^HWMSDKQueryConfInfoFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKCreateConfSuccessBlock) (HWMSDKCreateConfResultModel * createConfResult);
typedef void(^HWMSDKCreateConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKStartP2PConfSuccessBlock) (HWMSDKCreateConfResultModel * createConfResult);
typedef void(^HWMSDKStartP2PConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKBookConfSuccessBlock) (HWMSDKCreateConfResultModel * bookConfResult);
typedef void(^HWMSDKBookConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifyConfSuccessBlock) (void);
typedef void(^HWMSDKModifyConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifyVmrInfoSuccessBlock) (void);
typedef void(^HWMSDKModifyVmrInfoFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKCancelConfSuccessBlock) (void);
typedef void(^HWMSDKCancelConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRejectConfSuccessBlock) (void);
typedef void(^HWMSDKRejectConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAcceptConfSuccessBlock) (HWMSDKAcceptConfResultInfoModel * acceptConfResultInfo);
typedef void(^HWMSDKAcceptConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKBookCycleConfSuccessBlock) (HWMSDKCreateConfResultModel * bookConfResult);
typedef void(^HWMSDKBookCycleConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifyCycleConfSuccessBlock) (void);
typedef void(^HWMSDKModifyCycleConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifySubCycleConfSuccessBlock) (void);
typedef void(^HWMSDKModifySubCycleConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKCancelCycleConfSuccessBlock) (void);
typedef void(^HWMSDKCancelCycleConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKCancelSubCycleConfSuccessBlock) (void);
typedef void(^HWMSDKCancelSubCycleConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetAudienceVideoLayoutSuccessBlock) (void);
typedef void(^HWMSDKSetAudienceVideoLayoutFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKHangupAttendeeSuccessBlock) (void);
typedef void(^HWMSDKHangupAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRemoveAttendeeSuccessBlock) (void);
typedef void(^HWMSDKRemoveAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAddAttendeeSuccessBlock) (void);
typedef void(^HWMSDKAddAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKLockConfSuccessBlock) (void);
typedef void(^HWMSDKLockConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKLockShareSuccessBlock) (BOOL isLock);
typedef void(^HWMSDKLockShareFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKLockShareExSuccessBlock) (BOOL isLock);
typedef void(^HWMSDKLockShareExFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKInterpreterConfirmSuccessBlock) (void);
typedef void(^HWMSDKInterpreterConfirmFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetLanguageChannelSuccessBlock) (HWMSetLanguageChannelType languageChannelType);
typedef void(^HWMSDKSetLanguageChannelFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKLocalRecordGrantAttendeeSuccessBlock) (HWMSDKGrantAttendRecordResultModel * grantAttendRecordResult);
typedef void(^HWMSDKLocalRecordGrantAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetLocalRecordModeSuccessBlock) (HWMClientRecordMode type);
typedef void(^HWMSDKSetLocalRecordModeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSwitchRoleByHostSuccessBlock) (HWMSDKSwitchRoleResultModel * switchRoleResult);
typedef void(^HWMSDKSwitchRoleByHostFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKOperateCloudRecordSuccessBlock) (HWMCloudRecordType cloudRecordType);
typedef void(^HWMSDKOperateCloudRecordFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKOperateCloudLiveSuccessBlock) (HWMCloudLiveType liveType);
typedef void(^HWMSDKOperateCloudLiveFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKBroadcastAttendeeSuccessBlock) (BOOL isBroadcast);
typedef void(^HWMSDKBroadcastAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKBroadcastAuxPicSuccessBlock) (BOOL isBroadcastAuxPic);
typedef void(^HWMSDKBroadcastAuxPicFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAudienceJoinSuccessBlock) (BOOL isAllow);
typedef void(^HWMSDKAllowAudienceJoinFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAudienceSpeakSuccessBlock) (BOOL isAllow);
typedef void(^HWMSDKAllowAudienceSpeakFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKMuteAllAttendeeSuccessBlock) (NSUInteger isMute);
typedef void(^HWMSDKMuteAllAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRequestHostRoleSuccessBlock) (void);
typedef void(^HWMSDKRequestHostRoleFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKReleaseHostRoleSuccessBlock) (void);
typedef void(^HWMSDKReleaseHostRoleFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKGrantHostRoleSuccessBlock) (void);
typedef void(^HWMSDKGrantHostRoleFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRetrieveHostRoleSuccessBlock) (void);
typedef void(^HWMSDKRetrieveHostRoleFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAttendeeHandsupSuccessBlock) (BOOL isHandUp);
typedef void(^HWMSDKAttendeeHandsupFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKMuteAttendeeSuccessBlock) (BOOL isMute);
typedef void(^HWMSDKMuteAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAttendeeUnMuteSuccessBlock) (BOOL isAllow);
typedef void(^HWMSDKAllowAttendeeUnMuteFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetCohostRightSuccessBlock) (HWMSDKSetCohostResultModel * setCohostResultInfo);
typedef void(^HWMSDKSetCohostRightFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRenameSuccessBlock) (void);
typedef void(^HWMSDKRenameFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAttendeeRenameSuccessBlock) (BOOL isAllow);
typedef void(^HWMSDKAllowAttendeeRenameFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKPauseConfSuccessBlock) (BOOL isPause);
typedef void(^HWMSDKPauseConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKInviteShareSuccessBlock) (HWMSDKInviteShareResultModel * inviteShareShareResultInfo);
typedef void(^HWMSDKInviteShareFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAnswerInviteShareSuccessBlock) (HWMSDKInviteShareResultModel * setShareResultInfo);
typedef void(^HWMSDKAnswerInviteShareFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowWaitingAttendeeEnterSuccessBlock) (void);
typedef void(^HWMSDKAllowWaitingAttendeeEnterFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAllWaitingAttendeeEnterSuccessBlock) (void);
typedef void(^HWMSDKAllowAllWaitingAttendeeEnterFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKUpdateAllowJoinUserTypeSuccessBlock) (HWMConfAllowJoinUserType type);
typedef void(^HWMSDKUpdateAllowJoinUserTypeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKEndConfSuccessBlock) (void);
typedef void(^HWMSDKEndConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKOpenSubtitleSuccessBlock) (BOOL isOpen);
typedef void(^HWMSDKOpenSubtitleFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKLeaveConfSuccessBlock) (void);
typedef void(^HWMSDKLeaveConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRefuseOpenMicSuccessBlock) (void);
typedef void(^HWMSDKRefuseOpenMicFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKInviteOpenCameraSuccessBlock) (void);
typedef void(^HWMSDKInviteOpenCameraFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRefuseOpenCameraSuccessBlock) (void);
typedef void(^HWMSDKRefuseOpenCameraFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetCameraPermissionSuccessBlock) (HWMOnlyOpenCameraPermission cameraPermission);
typedef void(^HWMSDKSetCameraPermissionFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAllowAttendeeOpenCameraSuccessBlock) (void);
typedef void(^HWMSDKAllowAttendeeOpenCameraFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRemoveWaitingAttendeeSuccessBlock) (void);
typedef void(^HWMSDKRemoveWaitingAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRemoveAllWaitingAttendeeSuccessBlock) (void);
typedef void(^HWMSDKRemoveAllWaitingAttendeeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKMoveToWaitingRoomSuccessBlock) (void);
typedef void(^HWMSDKMoveToWaitingRoomFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKOpenWaitingRoomSuccessBlock) (BOOL isOpen);
typedef void(^HWMSDKOpenWaitingRoomFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKCreateBreakoutConfSuccessBlock) (void);
typedef void(^HWMSDKCreateBreakoutConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetBreakoutConfBasicSettingSuccessBlock) (void);
typedef void(^HWMSDKSetBreakoutConfBasicSettingFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKControlBreakoutConfSuccessBlock) (HWMControlBreakoutType controlBreakoutType);
typedef void(^HWMSDKControlBreakoutConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKMoveAttendeeBeforeBreakoutConfSuccessBlock) (void);
typedef void(^HWMSDKMoveAttendeeBeforeBreakoutConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAddBreakoutSubConfSuccessBlock) (void);
typedef void(^HWMSDKAddBreakoutSubConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifyBreakoutSubConfSuccessBlock) (void);
typedef void(^HWMSDKModifyBreakoutSubConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKDeleteBreakoutSubConfSuccessBlock) (void);
typedef void(^HWMSDKDeleteBreakoutSubConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAskHelpSuccessBlock) (HWMSDKAskHelpResultModel * askHelpReslut);
typedef void(^HWMSDKAskHelpFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAnswerHelpSuccessBlock) (HWMSDKAnswerHelpResultModel * answerResult);
typedef void(^HWMSDKAnswerHelpFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKMoveAttendeeInBreakoutConfSuccessBlock) (HWMSDKMoveBreakoutConfAttendeeResultModel * moveType);
typedef void(^HWMSDKMoveAttendeeInBreakoutConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSubscribeConfNotifysSuccessBlock) (void);
typedef void(^HWMSDKSubscribeConfNotifysFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRequestLocalRecordPermissionSuccessBlock) (void);
typedef void(^HWMSDKRequestLocalRecordPermissionFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRequestStartCloudRecordSuccessBlock) (void);
typedef void(^HWMSDKRequestStartCloudRecordFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKModifyInterruptSharePermissionSuccessBlock) (HWMInterruptSharePermission permission);
typedef void(^HWMSDKModifyInterruptSharePermissionFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSendChatMessageSuccessBlock) (HWMSDKSendChatMessageResultInfoModel * info);
typedef void(^HWMSDKSendChatMessageFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKQueryChatMessageSuccessBlock) (HWMSDKQueryChatMessageResultInfoModel * info);
typedef void(^HWMSDKQueryChatMessageFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSwitchProjectionToConfSuccessBlock) (void);
typedef void(^HWMSDKSwitchProjectionToConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKEndProjectionConfSuccessBlock) (void);
typedef void(^HWMSDKEndProjectionConfFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetAutoMuteSuccessBlock) (void);
typedef void(^HWMSDKSetAutoMuteFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetForbiddenScreenShotsEnableSuccessBlock) (void);
typedef void(^HWMSDKSetForbiddenScreenShotsEnableFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetWaterMarkEnableSuccessBlock) (void);
typedef void(^HWMSDKSetWaterMarkEnableFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetDataGuardAudioEnableSuccessBlock) (BOOL enable);
typedef void(^HWMSDKSetDataGuardAudioEnableFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetDataGuardVideoEnableSuccessBlock) (BOOL enable);
typedef void(^HWMSDKSetDataGuardVideoEnableFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetCustomInfoSuccessBlock) (void);
typedef void(^HWMSDKSetCustomInfoFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKInviteIntelligentAssistantSuccessBlock) (void);
typedef void(^HWMSDKInviteIntelligentAssistantFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKOperateIntelligentAssistantSuccessBlock) (void);
typedef void(^HWMSDKOperateIntelligentAssistantFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRequestInviteIntelligentAssistantSuccessBlock) (void);
typedef void(^HWMSDKRequestInviteIntelligentAssistantFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKSetQuestionAnswerModeSuccessBlock) (void);
typedef void(^HWMSDKSetQuestionAnswerModeFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKRequestAnnotationSuccessBlock) (NSUInteger userId);
typedef void(^HWMSDKRequestAnnotationFailedBlock) (NSError * _Nullable error);

typedef void(^HWMSDKAudioStartPlaySuccessBlock) (void);
typedef void(^HWMSDKAudioStartPlayFailedBlock) (NSError * _Nullable error);


@protocol HWMSDKConfMgrNotify <NSObject>

@optional
/// [en]This class is about the notification of conference connection. [cn]会议连接成功的通知 :setAudioRouteInCall
- (void)onConfConnectedNotify:(HWMSDKConfConnectedInfoModel *)confConnectedInfo;
/// [en]This class is about the notification of an ended conference. [cn]会议结束的通知
- (void)onConfEndedNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc confEndInfo:(HWMSDKConfEndInfoModel *)confEndInfo;
/// [en]This class is about conference incoming call notification. [cn]会议来电的通知 :initRender :initAudioRoute
- (void)onConfIncomingNotify:(HWMSDKConfIncomingInfoModel *)confIncomingInfo;
/// [en] [cn]会议来电异常的通知
- (void)onConfIncomingErrorNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en]This class is about the notification of conference list change.Synchronized methods is GetConfListInfo. [cn]会议列表变更
- (void)onConfListInfoChanged:(HWMSDKConfListInfoModel *)confListParam;
/// [en]This class is about the notification of anonymous membership account cancellation. [cn]匿名入会账户注销 :imLogout
- (void)onAnonyJoinConfLogoutNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en]This class is about the notification of rejoining the conference without code stream. [cn]会议无码流重新入会的通知 :leaveDataConf
- (void)onStartReJoinConfNotify:(HWMLeaveConfMode)reJoinConfReason;
/// [en]This class is about the notification of reconnect status. [cn]重连状态 :disable
- (void)onReconnectStatusNotify:(HWMReconnectStatusMode)reconnectStatus;
/// [en]This class is about the notification of rejoining the conference without code stream successfully. [cn]会议无码流重新入会成功的通知
- (void)onReJoinConfSuccessNotify:(HWMLeaveConfMode)reJoinConfReason;
/// [en]This class is about the notification of leaving the conference without code stream. [cn]会议无码流离会的通知 :leaveDataConf
- (void)onNoStreamLeaveConfNotify;
/// [en]This class is about the notification of waiting room info. [cn]等候室信息的通知
- (void)onWaitingRoomInfoNotify:(HWMSDKWaitingRoomInfoModel *)waitingRoomInfo;
/// [en]This class is about recording info after conf end. [cn]会议结束时上报录播信息通知 :disable
- (void)onConfRecordInfoNotify:(HWMSDKConfRecordInfoModel *)confRecordInfo;
/// [en]This class is about the notification of waiting room dynamic info. [cn]等候室信息的通知
- (void)onWaitingRoomDynamicInfoNotify:(HWMSDKWaitingRoomDynamicInfoModel *)waitingRoomInfo;
/// [en]This class is about the notification of waiting room manager info. [cn]等候室管理员信息
- (void)onWaitingRoomManagerListChangedNotify:(HWMSDKWaitingRoomManagerListModel *)waitingRoomManager;
/// 
- (void)onJoinBreakoutConfFailedNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc joinBreakoutConfFailed:(HWMSDKJoinConfFailedInfoModel *)joinBreakoutConfFailed;
/// [en]This class is about the notification of websocket auth fail. [cn]会管Wesocket 鉴权失败
- (void)onWebsocketAuthFail;
/// [en]This class is about the tmp user info. [cn]临时用户信息上报
- (void)onTmpUserInfoNotify:(HWMSDKTmpUserInfoModel *)tmpInfo;
/// [en]This class is about the audit task result. [cn]风控审核结果通知
- (void)onAuditTaskNotify:(HWMSDKConfServiceAuditTaskResultModel *)auditTaskResult;

@end

@protocol HWMSDKConfStateNotify <NSObject>

@optional
/// [en] [cn]会议基本信息更新通知
- (void)onMeetingInfoChanged:(HWMSDKMeetingInfoModel *)meetingInfo;
/// [en] [cn]我的状态变更: 是否举手的通知
- (void)onSelfHandupChanged:(BOOL)isHandup;
/// [en] [cn]我的状态变更: 我的名字的通知
- (void)onSelfNameChanged:(HWMSDKSelfNameChangedInfoModel *)selfNameChangedInfo;
/// [en] [cn]我的状态变更: 我的角色的通知
- (void)onSelfRoleChanged:(HWMConfRole)confRole;
/// [en] [cn]我的状态变更: 是否有云上录播权限的通知
- (void)onSelfHasCloudRecordPermissionChanged:(BOOL)hasRecordPermission;
/// [en] [cn]我的状态变更: 是否有云上直播权限的通知
- (void)onSelfHasCloudLivePermissionChanged:(BOOL)hasLivePermission;
/// [en] [cn]我的状态变更: 是否有客户端本地录制权限的通知
- (void)onSelfHasLocalRecordPermissionChanged:(BOOL)hasRecordPermission isHostRightChange:(BOOL)isHostRightChange;
/// [en] [cn]我的状态变更: 本地录播状态变更
- (void)onSelfLocalRecordStateChanged:(HWMLocalRecordState)localRecordState;
/// [en] [cn]我的状态变更: 共享状态变更的通知
- (void)onSelfShareStateChanged:(BOOL)isShare;
/// [en] [cn]我的状态变更: 被邀请共享变更的通知
- (void)onSelfIsInviteShareChanged:(BOOL)isInviteShare;
/// [en] [cn]我的状态变更: 帮助状态变更
- (void)onSelfAskHelpStatusChange:(HWMAskHelpStateType)askHelpType;
/// [en] [cn]我的状态变更: 是否有收回主持人权限变更
- (void)onSelfHasRetrieveHostPermissionChanged:(BOOL)hasRetrieveHostPermission;
/// [en] [cn]会议状态变更: 会议模式变化
- (void)onConfModeTypeChanged:(HWMConfModeType)confModeType;
/// [en] [cn]会议状态变更: 是否有主席的通知
- (void)onConfHasHostChanged:(BOOL)hasHost;
/// [en] [cn]会议状态变更: 是否支持多人共享
- (void)onMultiShareTypeChanged:(HWMMultiShareType)multiShareType;
/// [en] [cn]会议状态变更: 主席变更通知
- (void)onConfHostChanged:(NSUInteger)hostUserId;
/// [en] [cn]会议状态变更: 广播的通知
- (void)onConfBroadcastInfoChanged:(HWMSDKBroadcastInfoModel *)broadcastInfo;
/// [en] [cn]会议状态变更: 广播共享的通知
- (void)onConfBroadcastAuxPicInfoChanged:(HWMSDKBroadcastAuxPicInfoModel *)broadcastAuxPicInfo;
/// [en] [cn]会议状态变更: 点名的通知
- (void)onConfRollCallInfoChanged:(HWMSDKRollCallInfoModel *)rollCallInfo;
/// [en] [cn]会议状态变更: 是否全场静音的通知
- (void)onConfIsAllMutedChanged:(BOOL)isAllMuted;
/// [en] [cn]会议状态变更: 是否支持字幕的通知
- (void)onConfIsSupportSubtitleChanged:(BOOL)isSupportSubtitle;
/// [en] [cn]会议状态变更: 是否允许解除静音的通知
- (void)onConfIsAllowUnmuteChanged:(BOOL)allowUnmute;
/// [en] [cn]会议状态变更: 会议是否锁定的通知
- (void)onConfIsLockedChanged:(BOOL)isLocked;
/// [en] [cn]会议状态变更: 是否共享锁定的通知
- (void)onConfIsShareLockedChanged:(BOOL)isShareLocked;
/// [en] [cn]聊天权限变更通知
- (void)onChatPermissionChanged:(HWMChatPermission)chatPermission;
/// [en] [cn]会议状态变更: 是否暂停的通知
- (void)onConfIsPausedChanged:(BOOL)isPaused;
/// [en] [cn]会议状态变更: 是否开启水印的通知
- (void)onConfSupportWatermarkChanged:(BOOL)supportWatermark;
/// [en] [cn]vmr max duration 改变
- (void)onConfVmrMaxDurationChanged:(NSUInteger)vmrMaxDuration;
/// [en] [cn]会议状态变更: 是否支持联席主持人的通知
- (void)onConfSupportCohostChanged:(BOOL)supportCohost;
/// [en] [cn]会议状态变更: 与会者人数(包括在线的视频和音频会场人数)的通知
- (void)onConfAttendeeSizeChanged:(HWMSDKAttendeeSizeInfoModel *)attendeeSizeInfo;
/// [en] [cn]会议状态变更: 举手信息的通知
- (void)onConfHandupInfoChanged:(HWMSDKConfHandupInfoModel *)handupInfo;
/// [en] [cn]主流视频分辨率变更: 全量的主流视频分辨率的通知
- (void)onConfVideoResolutionChanged:(HWMSDKVideoResolutionListModel *)videoResolutionList;
/// [en] [cn]会议状态变更: 本地录制信息变更的通知
- (void)onConfLocalRecordChanged:(HWMSDKLocalRecordInfoModel *)localRecordInfo;
/// [en] [cn]会议状态变更: 云上录制状态变更的通知
- (void)onConfCloudRecordChanged:(HWMSDKCloudRecordInfoModel *)cloudRecordInfo;
/// [en] [cn]会议状态变更: 云上录制报错
- (void)onConfCloudRecordErrorNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en]Max participants in a single meeting reached. [cn]单个会议人数达系统上限通知
- (void)onParticipantReachMaxNumNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en] [cn]会议状态变更: 云上直播状态变更的通知
- (void)onConfCloudLiveChanged:(HWMCloudLiveStatus)cloudLiveStatus;
/// [en]This class is about the notification of no code stream for the conference. [cn]会议无码流的通知
- (void)onConfNoStreamNotify:(NSInteger)noStreamSeconds;
/// [en] [cn]与会者列表变更: 全量的与会者列表的通知
- (void)onAttendeeListChanged:(HWMSDKAttendeeListModel *)attendeeList;
/// [en] [cn]与会者列表变更: 视频与会者列表的通知
- (void)onVideoAttendeeListChanged:(HWMSDKAttendeeListModel *)attendeeList;
/// [en] [cn]与会者列表变更: 发言人变更的通知
- (void)onSpeakerListChanged:(HWMSDKSpeakerListModel *)speakerList;
/// [en] [cn]会议状态变更: 允许入会范围的通知
- (void)onConfAllowJoinTypeChanged:(HWMConfAllowJoinUserType)allowJoinType;
/// [en] [cn]会议状态变更: 是否支持邀请共享的通知
- (void)onConfSupportInviteShareChanged:(BOOL)supportInviteShare;
/// [en] [cn]会议状态变更: 是否禁止截屏 -- 已废弃
- (void)onConfForbiddenScreenShotsChanged:(BOOL)forbidScreenShots;
/// [en] [cn]会议状态变更: 禁止截屏开关状态
- (void)onConfForbiddenScreenShotsEnableChanged:(HWMForbiddenScreenShotsEnableType)forbidScreenShots;
/// [en] [cn]会议状态变更: 水印开关状态
- (void)onConfWaterMarkEnableChanged:(HWMWaterMarkEnableType)waterMark;
/// [en] [cn]会议状态变更: 音频暗水印开关状态
- (void)onConfDataGuardAudioEnableChanged:(BOOL)enable;
/// [en] [cn]会议状态变更: 视频暗水印开关
- (void)onConfDataGuardVideoEnableChanged:(BOOL)enable;
/// [en] [cn]会议状态变更: 是否强制视频会议
- (void)onConfOnlyAllowOpenCameraChanged:(BOOL)onlyAllowOpenCamera;
/// [en] [cn]会议状态变更: 是否支持取消共享的通知
- (void)onConfEnableCancelShareChanged:(BOOL)enableCancelShare;
/// [en]This class is about custom multi picture notify. [cn]广播多画面通知
- (void)onCustomMultiPictureInfoChanged:(HWMSDKCustomMultiPicInfoModel *)customMultiPicInfo;
/// [en]This class is about commercial status change notify. [cn]商用资源状态变化通知
- (void)onCommercialStatusChanged:(HWMCommercialStatusType)statusType;
/// [en] [cn]主画面userId变化的结果回调
- (void)onMainVideoUserIdChanged:(NSUInteger)userId;
/// [en] [cn]被主持人邀请 打开/关闭 麦克风
- (void)onInviteOpenMicNotify:(BOOL)isOpen openType:(HWMInviteOpenMicType)openType inviterUserId:(NSUInteger)inviterUserId;
/// [en] [cn]主持人收到邀请者拒绝开启麦克风通知
- (void)onRefuseOpenMicNotify:(NSUInteger)userId;
/// [en] [cn]被主持人邀请 打开/关闭 摄像头
- (void)onInviteOpenCameraNotify:(BOOL)isOpen inviterUserId:(NSUInteger)inviterUserId inviteReason:(HWMInviteOpenCameraReason)inviteReason;
/// [en] [cn]主持人收到邀请者拒绝开启摄像头通知
- (void)onRefuseOpenCameraNotify:(NSUInteger)userId;
/// [en] [cn]功能开关：主持人是否邀请与会人开启麦克风变化通知
- (void)onInviteOpenMicChanged:(BOOL)isInvite;
/// [en] [cn]是否允许改名变化通知
- (void)onConfIsAllowRenameChanged:(BOOL)isAllow;
/// [en] [cn]功能开关：主持人是否能够强制关闭与会人摄像头通知
- (void)onEnableForceCloseCameraChanged:(BOOL)enable;
/// [en] [cn]功能开关：主持人设置与会人自行开启摄像头状态变化通知
- (void)onEnableAllowOpenCameraChanged:(BOOL)enable;
/// [en] [cn]等候室：会议状态变更: 是否支持等候室的通知
- (void)onConfSupportWaitingRoomChanged:(BOOL)supportWaitingRoom;
/// [en] [cn]等候室：会议状态变更: 等候室开启状态的通知
- (void)onConfIsOpenWaitingRoomChanged:(BOOL)isOpenWaitingRoom;
/// [en] [cn]等候室：等候室成员列表变更的通知
- (void)onWaitingListChanged:(HWMSDKAttendeeListModel *)waitingInfoList;
/// [en]This class is about audio quality notify. [cn]音频质量通知
- (void)onAudioQualityNotify:(HWMSDKAudioQualityInfoModel *)info;
/// [en] [cn]网络研讨会：我的状态变更: 是否允许说话的通知
- (void)onSelfAllowSpeakChanged:(BOOL)isAllowSpeak;
/// [en] [cn]网络研讨会：我的状态变更: 是否可以转成观众
- (void)onSelfCanSwitchToAudienceChanged:(BOOL)canSwitchAudience;
/// [en] [cn]网络研讨会：会议状态变更: 观众个数的通知
- (void)onConfAudienceSizeChanged:(NSUInteger)audienceSize;
/// [en] [cn]网络研讨会：会议状态变更: 观众的观看视频模式的通知
- (void)onConfAudienceVideoLayoutChanged:(HWMAudienceLayoutType)audienceLayoutType;
/// [en] [cn]网络研讨会：会议状态变更: 是否允许观众入会的通知
- (void)onConfIsAllowAudienceJoinChanged:(BOOL)isAllowJoin;
/// [en] [cn]网络研讨会：观众与会者列表变更的通知
- (void)onAudienceListChanged:(HWMSDKAttendeeListModel *)audienceList;
/// [en]This class is about the notification of audience changed.Synchronized methods is GetAudienceSizeInfo. [cn]网络研讨会：观众人数变化通知
- (void)onAudienceInfoSizeChanged:(HWMSDKShowAudienceSizeInfoModel *)showAudienceInfo;
/// [en]This class is about the notification of audience list limit changed.Synchronized methods is GetAudienceListLimit. [cn]网络研讨会：观众最大限制人数变化通知
- (void)onAudienceListLimitChanged:(NSUInteger)audienceListLimit;
/// [en] [cn]同声传译：会议状态变更: 同声传译的通知
- (void)onConfSimuInterpretChanged:(HWMSDKSimuInterpretInfoModel *)simuInterpretInfo;
/// [en] [cn]会议状态变更: 是否数字人驱动中
- (void)onVirtualHumanDriveStateChanged:(BOOL)isDrive;
/// [en] [cn]同声传译：会议状态变更: 是否开启同声传译的通知
- (void)onConfIsSimuInterpretOpenedChanged:(BOOL)isSimuInterpretOpened;
/// [en] [cn]同声传译：我的状态变更: 同声传译的通知
- (void)onSelfInterpreterChanged:(HWMSDKInterpreterInfoModel *)selfInterpreterInfo;
/// [en] [cn]同声传译：会议状态变更: 是否支持同声传译的通知
- (void)onConfSupportSimuInterpretChanged:(BOOL)isSupportSimuInterpret;
/// [en] [cn]同声传译：与会者支持选择收听原声频道变化通知
- (void)onEnableOriginVoiceChanged:(BOOL)enable;
/// [en] [cn]状态变更：是否允许与会人自行开启摄像头状态变化通知
- (void)onIsAllowOpenCameraChanged:(BOOL)isAllow;
/// [en] [cn]会议敏感词信息更新通知
- (void)onSensitiveWordChanged:(HWMSDKSensitiveWordListModel *)sensitiveWordLists;
/// [en] [cn]会议状态变更: 是否支持标注权限控制
- (void)onSupportAnnotationPermissionChanged:(BOOL)supportAnnotationPermission;
/// [en] [cn]会前状态信息变更 :leaveDataConfWithParam
- (void)onJoinStatusChanged:(HWMJoinStatusType)joinStatus;
/// [en] [cn]是否启用请求标注权限通知
- (void)onEnableRequestAnnotationNotify:(BOOL)enable;
/// [en] [cn]是否启用强制动态背景标注通知
- (void)onEnableAnnotatorDynamicBackgroundNotify:(BOOL)enable;
/// [en] [cn]来宾会前等待信息变更
- (void)onGuestWaitingBeforeConfInfoChanged:(HWMSDKGuestWaitingBeforeConfInfoModel *)guestWaitingBeforeConfInfo;
/// [en] [cn]观众等待信息变更
- (void)onAudienceWaitingInfoChanged:(HWMSDKAudienceWaitingInfoModel *)audienceWaitingInfo;
/// [en] [cn]分组会议状态变更
- (void)onBreakoutConfStateChanged:(HWMBreakoutConfStatus)breakoutConfStatus;
/// [en] [cn]强制开启摄像头状态变更
- (void)onOnlyOpenCameraShowStateChanged:(HWMOnlyOpenCameraShowState)onlyOpenCameraShowState;
/// [en]This class is about avc picture notify. [cn]avc画面通知
- (void)onServerMultiPicChanged:(HWMSDKServerMultiPicInfoModel *)serverMultiPicInfo;
/// [en] [cn]会议状态变更: 抢共享权限变更
- (void)onInterruptSharePermissionChanged:(HWMInterruptSharePermission)permission;
/// [en]Operate network err notify. [cn]网络异常操作结果通知
- (void)onOperateNetworkErrNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en]Operate transfer chairman notify. [cn]转移主持人结果通知上报
- (void)onTransferChairManNotify:(HWMSDKTransferChairManResultInfoModel *)result;
/// [en]confctrl link state notify [cn]会控链路状态通知
- (void)onConfCtrlStateNotify:(BOOL)bState;
/// [en]view share state changed notify [cn]本端是否禁止观看共享通知
- (void)onViewShareStateChangedNotify:(BOOL)state;
/// pc [en]forbidden mobile view share state changed notify [cn]是否禁止移动端观看共享通知
- (void)onForbiddenMobileViewShareStateChangedNotify:(BOOL)state;
/// [en] [cn]会议状态变更: 是否支持云虚拟背景的通知
- (void)onConfIsSupportCloudVirtualBackgroundChanged:(BOOL)isSupport;
/// [en] [cn]会议状态变更: 智能会议纪要状态变更通知
- (void)onSummaryStateChangedNotify:(HWMSummaryState)state;
/// [en] [cn]会议状态变更: 会场是否开启软终端入会自动静音
- (void)onConfIsAutoMuteChanged:(BOOL)isMute;
/// [en] [cn]会议状态变更: 会场是否开启硬终端入会自动静音
- (void)onConfIsHardTerminalAutoMuteChanged:(BOOL)isMute;
/// [en] [cn]会议状态变更: 同声传译类型
- (void)onSimultaneousInterpretationTypeChanged:(HWMSimultaneousInterpretType)type;
/// [en] [cn]自己的ConstantInfo变化通知
- (void)onSelfConstantInfoChanged:(HWMSDKSelfConstantInfoModel *)constantInfo;
/// [en] [cn]语音助手：会议状态变更: 是否开启语音助手的通知
- (void)onConfIsIntelligentAssistantOpenedChanged:(BOOL)isOpened;
/// [en] [cn]语音助手：会议状态变更: 是否支持语音助手的通知
- (void)onConfIsSupportIntelligentAssistantChanged:(BOOL)isSupport;
/// [en] [cn]语音助手：会议状态变更: 语音助手状态变更通知
- (void)onIntelligentAssistantStateNotify:(HWMIntelligentAssistantState)state;
/// [en] [cn]语音助手：会议状态变更: 语音助手错误通知
- (void)onIntelligentAssistantErrorNotify:(HWMSDKERR)result;
/// [en] [cn]语音助手：会议状态变更: 会中问题模式状态变更通知
- (void)onQuestionAnswerModeChangedNotify:(HWMQuestionAnswerMode)mode;

@end

@protocol HWMSDKVideoInfoNotify <NSObject>

@optional
/// [en]xxxxx [cn]视频窗口信息变更:名称
- (void)onVideoNameChanged:(NSUInteger)userId name:(NSString *)name;
/// [en]xxxxx [cn]视频窗口信息变更:静音
- (void)onVideoIsMuteChanged:(NSUInteger)userId isMute:(BOOL)isMute state:(HWMAudioState)state;
/// [en]xxxxx [cn]视频窗口信息变更:举手
- (void)onVideoIsHandupChanged:(NSUInteger)userId isHandup:(BOOL)isHandup;
/// [en]xxxxx [cn]视频是否是最大发言人
- (void)onVideoIsMaxSpeakerChanged:(NSUInteger)userId;
/// [en]xxxxx [cn]视频是否在加载
- (void)onVideoIsLoadingChanged:(NSUInteger)userId isLoading:(BOOL)isLoading;
/// [en]xxxxx [cn]视频流的变化通知
- (void)onVideoStreamTypeChanged:(NSUInteger)userId streamType:(HWMStreamType)streamType;
/// [en]xxxxx [cn]视频窗口信息变更:信号格
- (void)onVideoNetQualityChanged:(NSUInteger)userId level:(NSUInteger)level;
/// [en]xxxxx [cn]视频画面SIM卡来电状态变化通知
- (void)onVideoCallStatusChanged:(NSUInteger)userId callStatusType:(HWMTelCallStatusType)callStatusType;

@end

@protocol HWMSDKConfCtrlNotify <NSObject>

@optional
/// [en] [cn]角色切换的通知
- (void)onSwitchRoleNotify:(HWMSDKSwitchRoleInfoModel *)switchRoleInfo;
/// [en] [cn]邀请/取消共享的通知
- (void)onInviteShareNotify:(BOOL)isShare;
/// [en] [cn]接受/拒绝共享的通知
- (void)onAnswerShareNotify:(NSUInteger)userId result:(HWMSDKERR)result;
/// [en] [cn]会议结束时录制结果的通知
- (void)onRecordWhenEndConfNotify:(HWMSDKRecordNotifyWhenConfEndInfoModel *)recordInfo;
/// [en]This class is about subtitile info notify. [cn]字幕消息实时通知
- (void)onRealTimeSubtitleInfoNotify:(HWMSDKRealTimeSubtitleModel *)realTimeSubtitle;
/// [en]This class is about subtitile info notify. [cn]字幕记录消息通知
- (void)onSubtitleRecordNotify:(HWMSDKSubtitleRecordInfoModel *)subtitleInfo;
/// [en]This class is about the notification of local record stop. [cn]本地录制停止通知 :disable
- (void)onStopLocalRecordReasonNotify:(HWMStopLocalRecordReason)reason;
/// [en]xxxx [cn]推送新增与会者结果通知
- (void)onAddAttendeeNotify:(HWMSDKAddAttendeeResultListModel *)resultList;
/// [en]xxxx [cn]通知主动选看人员已经离开会议
- (void)onSpecifiedAttendeeLeaveNotify:(NSUInteger)userId;
/// [en]xxxx [cn]本地录制状态变化，上报操作类型和路径信息
- (void)onSelfLocalRecordStateNotify:(HWMSDKLocalRecordPathInfoModel *)pathInfo;
/// [en]xxxx [cn]共享端接收到请求标注的消息
- (void)onRecvRequestAnnotationNotify;
/// [en]This class is about breakoutSettingInfo notify. [cn]分组会议信息通知
- (void)onBreakoutConfSettingNotify:(HWMSDKBreakoutConfSettingModel *)breakoutSettingInfo;
/// [en]This class is about breakoutSettingInfo notify. [cn]支持分组会议成员信息通知
- (void)onAttendeeListSupportBreakoutConfNotify:(HWMSDKBreakoutConfAttendeesListModel *)breakoutConfAttendeesList;
/// [en]This class is about breakoutConfAttendeesList notify. [cn]分组会议前分组会议成员信息通知
- (void)onAttendeesListBeforeBreakoutConfNotify:(HWMSDKBreakoutConfAttendeesListModel *)breakoutConfAttendeesList;
/// [en]This class is about BreakoutSubConfInfo notify. [cn]分组会议中会议分组信息通知
- (void)onSubConfListInBreakoutConfNotify:(HWMSDKConfInfoInBreakoutConfModel *)confInfoInBreakoutConf;
/// [en]This class is about OnlineAttendeeListInBreakoutConf notify. [cn]动态分组会议成员信息通知
- (void)onOnlineAttendeeListInBreakoutConfNotify:(HWMSDKBreakoutConfAttendeesListModel *)dynamicBreakoutConfAttendeesList;
/// [en]This class is about moveBreakoutConfAttendeeInfo notify. [cn]会中移动分组成员通知
- (void)onMoveAttendeeInBreakoutConfNotify:(HWMSDKMoveBreakoutConfAttendeeInfoModel *)moveBreakoutConfAttendeeInfo;
/// [en]This class is about asking help notify. [cn]主持人收到帮助通知
- (void)onAskHelpNotify:(HWMSDKAskHelpParamModel *)askHelpParam;
/// [en]This class is about answering help notify. [cn]主持人应答
- (void)onAnswerHelpNotify:(HWMSDKAnswerHelpParamModel *)askHelpParam;
/// [en]This class is about stopping breakout conf notify. [cn]分组会议停止通知
- (void)onStopBreakoutConfNotify;
/// [en]This class is about scan join conf notify. [cn]扫码入会通知
- (void)onScanJoinConfNotify:(HWMSDKScanJoinConfResultParamModel *)scanJoinConfResultParam;
/// [en]This class is about the notification of conference connection. [cn]会议连接成功的通知 :setAudioRouteInCall
- (void)onBreakoutConfConnectedNotify:(HWMSDKConfConnectedInfoModel *)confConnectedInfo;
/// [en]This function is about start local record permission request [cn]收到本地录制权限请求
- (void)onLocalRecordPermissionRequestNotify:(HWMSDKRecordRequestParamModel *)param;
/// [en]This function is about start cloud record request [cn]收到云录制请求
- (void)onStartCloudRecordRequestNotify:(HWMSDKRecordRequestParamModel *)param;
/// [en]This function is about answer local record permission request result [cn]收到本地录制权限请求的回复结果
- (void)onAnswerLocalRecordPermissionRequestNotify:(HWMSDKAnswerParamModel *)param;
/// [en]This function is about answer start cloud record request result [cn]收到开始云录制请求的回复结果
- (void)onAnswerStartCloudRecordRequestNotify:(HWMSDKAnswerParamModel *)param;
/// [en]This class is about the conf ctrl websocket auth fail. [cn]会控websocket鉴权制作
- (void)onWebsocketAuthFail;
/// [en]This class is about the request annotation result. [cn]申请标注结果
- (void)onRequestAnnotationResult:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc userId:(NSUInteger)userId;
/// [en]This function is about has new chat messages. [cn]会中聊天：消息刷新通知
- (void)onChatMessageRefreshNotify:(HWMSDKLatestChatMessageInfoModel *)info;
/// [en]This function is about app notify. [cn]应用通知推送消息(如投票状态通知)
- (void)onAppNotify:(HWMSDKAppNotifyListModel *)list;
/// [en]This function is about virtual human drive infos notify. [cn]数字人驱动信息通知列表
- (void)onVirtualHumanDriveInfoNotify:(HWMSDKVirtualHumanDriveInfoNotifyListModel *)list;
/// [en]This function is about re query chat message notify. [cn]重新拉取聊天消息
- (void)onReQueryChatMessageNotify;
/// [en]This function is about allow waiting attendee enter notify. [cn]等候室观众准入通知
- (void)onAllowWaitingAttendeeEnterNotify:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;
/// [en]This function is about move breakout conf attendee notify. [cn]移动分组成员结果通知
- (void)onMoveBreakoutConfAttendeeNotify:(HWMSDKMoveBreakoutConfAttendeeNotifyInfoModel *)notifyInfo;
/// [en]This function is about start invite intelligent assistant request [cn]收到邀请语音助手请求
- (void)onInviteIntelligentAssistantRequestNotify:(HWMSDKIntelligentAssistantRequestParamModel *)param;
/// [en]This function is about receive answer invite intelligent assistant request notify [cn]非主持人收到请求邀请结果
- (void)onAnswerInviteIntelligentAssistantRequestNotify:(HWMSDKAnswerParamModel *)param;

@end

@protocol HWMSDKConfDeviceNotify <NSObject>

@optional
/// [en]This class is about video device status change. Synchronized Method is GetCameraState. [cn]视频设备状态变化
- (void)onCameraStateChanged:(HWMDeviceStatus)status;
/// [en]This class is about the changes of microphone mute status,TRUE - micOn;FALSE - micOff. Synchronized Method is GetMicState [cn]麦克风静音状态变化
- (void)onMicStateChanged:(BOOL)isOn;
/// [en]This class is about the changes of audio connected status [cn]音频连接状态变化
- (void)onAudioStateChanged:(HWMAudioState)state;
/// [en]This class is about the changes of speak mute status,TRUE - micOn;FALSE - micOff. Synchronized Method is GetSpeakState [cn]扬声器静音状态变化
- (void)onSpeakStateChanged:(BOOL)isOn;
/// [en]]This API is about the changes of camera devices. [cn]获取摄像头设备变化信息 :disable
- (void)onCameraDevicesChanged:(HWMSDKCameraDeviceInfoModel *)camDeviceInfo;
/// [en]This API is about the changes of microphone devices. [cn]获取麦克风设备变化信息 :disable
- (void)onMicDevicesChanged:(HWMSDKMicDeviceInfoModel *)micDetailInfo;
/// [en]This API is about the changes of microphone devices attributes. [cn]麦克风设备属性信息变化信息 :disable
- (void)onMicDevicesAttributesChanged:(HWMSDKMicDeviceInfoModel *)micDetailInfo;
/// [en] algo ability changed. Synchronized Method is GetAlgoAbility [cn] 虚拟背景算法能力变更
- (void)onAlgoAbilityChanged:(HWMAlgoAbility)algoAbility;
/// [en]This API is about the changes of speaker devices. [cn]获取扬声器设备变化信息 :disable
- (void)onSpeakerDevicesChanged:(HWMSDKSpkDeviceInfoModel *)spkDeviceInfo;
/// [en]This API is about the changes of speaker devices attributes. [cn]获取扬声器设备属性变化信息 :disable
- (void)onSpeakerDevicesAttributesChanged:(HWMSDKSpkDeviceInfoModel *)spkDeviceInfo;
/// [en]This class is about the callback of howl status detection. [cn]啸叫状态回调
- (void)onDevicesHowlStatusNotify:(HWMHowlStatus)howlstate;
/// [en]xxxxxx [cn]系统麦克风是否被静音 :disable
- (void)onSysMicIsMutedNotify:(BOOL)isMute;
/// [en]xxxxxx [cn]系统扬声器是否被静音 :disable
- (void)onSysSpkIsMutedNotify:(BOOL)isMute;
/// [en]This class is about the callback of microphone input status change. [cn]麦克风输入状态变化
- (void)onMicInputLevelNotify:(NSInteger)result;
/// [en]This class is about the callback of speak out level change. [cn]扬声器音量级别变化变化 :disable
- (void)onSpeakOutputLevelChangeNotify:(NSUInteger)level;
/// [en]This class is about the callback of voice detection. [cn]人声检测回调
- (void)onVoiceDetectNotify;
/// [en]This class is about audio routing variation.Synchronous acquisition method is GetAudioRoute. [cn]音频路由变化
- (void)onAudioRouteChanged:(HWMAudioRouteType)audioRouteType;
/// [en]This class is about the notification of low quality network. [cn]弱网提示通知
- (void)onPoorNetworkQualityNotify:(HWMLowNetWorkType)lowNetWorkType;
/// [en]This class is about the notification of low quality network. [cn]弱网提示通知
- (void)onPoorNetworkQualityInfoNotify:(HWMSDKPoorNetWorkQualityInfoModel *)poorNetWorkInfo;
/// [en]This class is about the notification of switching camera because of bandwidth fluctuations. [cn]带宽波动切换摄像头通知
- (void)onNetJitterTMMBRNotify:(HWMTMMBRMsgType)netJitterTMMBRMsgType;
/// [en]This class is about the notification of camera start error. [cn]打开摄像头错误通知
- (void)onCameraStartErrorNotify:(HWMCameraStartErrorType)cameraStartErrorType;
/// [en]This class is about the notification of BP result. [cn]hme处理虚拟背景错误上报
- (void)onVirtualBackgroundErrorNotify:(HWMBgTypeErr)cameraStartErrorType;
/// [en]This class is about the notification of cloud virtual background result. [cn]云虚拟背景错误上报
- (void)onCloudVirtualBackgroundErrorNotify:(HWMSDKMediaCapControlResultModel *)result;
/// [en]This class is about the raw data of audio frame. [cn]音频裸码流上报(SetAudioRawDataOutputConfig传值为true时,才会上报) :disable
- (void)onAudioFrameNotify:(HWMSDKAudioFrameDataModel *)pFrame;
/// [en]This class is about the stop paly audio file notify. [cn] :disable
- (void)onStopPlayAudioFileNotify:(NSInteger)result;
/// [en]This class is about the device volum info changed. [cn]
- (void)onDeviceVolumeChanged:(HWMSDKDeviceVolumeInfoModel *)volumeInfo;
/// [en]This class is about the restore spk open state [cn]重连音频后,还原扬声器为打开状态的通知
- (void)onRestoreSpkOpenNotify:(HWMSDKERR)result;
/// [en]This class is about the restore mic open state [cn]重连音频后,还原麦克风为打开状态的通知
- (void)onRestoreMicOpenNotify:(HWMSDKERR)result;
/// [en]This API is about the quick changes of mic devices. [cn]麦克风设备列表短期内频繁变更 :disable
- (void)onMicDevicesSizeQuickChange;
/// [en]This API is about the quick changes of spk devices. [cn]扬声器设备列表短期内频繁变更 :disable
- (void)onSpkDevicesSizeQuickChange;
/// [en]This API is start play audio file result notify. [cn]音频文件开始播放结果通知
- (void)onAudioStartPlayResult:(HWMSDKERR)result reasonDesc:(NSString *)reasonDesc;

@end

@interface HWMSDKConfMgrService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
- (void)addConfMgrNotifyCallback:(id<HWMSDKConfMgrNotify>)callback;
- (void)removeConfMgrNotifyCallback:(id<HWMSDKConfMgrNotify>)callback;
/// [en] [cn]当前是否在会议中
- (BOOL)isInConf;

/// [en]This class is about querying the detailed information of vmr conference. [cn]查询VMR会议详情
- (void)queryVmrInfoWithSuccessCallback:(HWMSDKQueryVmrInfoSuccessBlock)successCallback failedCallback:(HWMSDKQueryVmrInfoFailedBlock)failedCallback;

/// [en] [cn]查询会议详情
- (void)queryConfInfoWithConfId:(NSString *)confId successCallback:(HWMSDKQueryConfInfoSuccessBlock)successCallback failedCallback:(HWMSDKQueryConfInfoFailedBlock)failedCallback;

/// [en] [cn]创建会议
- (void)createConfWithParam:(HWMSDKCreateConfParamModel *)param successCallback:(HWMSDKCreateConfSuccessBlock)successCallback failedCallback:(HWMSDKCreateConfFailedBlock)failedCallback;

/// [en] [cn]创建MMR立即会议
- (void)startP2PConfWithParam:(HWMSDKCreateConfParamModel *)param successCallback:(HWMSDKStartP2PConfSuccessBlock)successCallback failedCallback:(HWMSDKStartP2PConfFailedBlock)failedCallback;

/// [en] [cn]预约会议
- (void)bookConfWithParam:(HWMSDKBookConfParamModel *)param successCallback:(HWMSDKBookConfSuccessBlock)successCallback failedCallback:(HWMSDKBookConfFailedBlock)failedCallback;

/// [en]This class is about getting the conference list synchronously. [cn]同步获取会议列表
- (NSArray <HWMSDKConfListItemModel *> *)getConfListInfo;

/// [en] [cn]编辑会议
- (void)modifyConfWithParam:(HWMSDKModifyConfParamModel *)param successCallback:(HWMSDKModifyConfSuccessBlock)successCallback failedCallback:(HWMSDKModifyConfFailedBlock)failedCallback;

/// [en] [cn]修改VMR信息
- (void)modifyVmrInfoWithParam:(HWMSDKModifyVmrParamModel *)param successCallback:(HWMSDKModifyVmrInfoSuccessBlock)successCallback failedCallback:(HWMSDKModifyVmrInfoFailedBlock)failedCallback;

/// [en] [cn]取消会议
- (void)cancelConfWithParam:(HWMSDKCancelConfParamModel *)param successCallback:(HWMSDKCancelConfSuccessBlock)successCallback failedCallback:(HWMSDKCancelConfFailedBlock)failedCallback;

/// [en] [cn]通过会议ID加入会议
- (void)joinConfByIdWithParam:(HWMSDKJoinConfByIdParamModel *)param successCallback:(HWMSDKJoinConfByIdSuccessBlock)successCallback failedCallback:(HWMSDKJoinConfByIdFailedBlock)failedCallback;

/// [en]set media capbility [cn]设置媒体能力集
- (HWMSDKERR)setMediaCapbility:(HWMSDKMediaCapbilityParamModel *)capbility;

/// [en]enable cloud virtual background [cn]是否启用云虚拟背景
- (HWMSDKERR)enableCloudVirtualBackground:(BOOL)enable;

/// [en] [cn]通过会议ID匿名加入会议
- (void)joinConfAnonymouslyByIdWithParam:(HWMSDKAnonymousJoinConfParamModel *)param successCallback:(HWMSDKJoinConfAnonymouslyByIdSuccessBlock)successCallback failedCallback:(HWMSDKJoinConfAnonymouslyByIdFailedBlock)failedCallback;

/// [en] [cn]接受会议邀请
- (void)acceptConfWithParam:(HWMSDKAcceptConfParamModel *)param successCallback:(HWMSDKAcceptConfSuccessBlock)successCallback failedCallback:(HWMSDKAcceptConfFailedBlock)failedCallback;

/// [en]This class is about rejecting the conference. [cn]拒绝会议邀请 :uninitRender :setAudioRouteOutCall :resetAudioRoute
- (void)rejectConfWithConfHandle:(NSUInteger)confHandle successCallback:(HWMSDKRejectConfSuccessBlock)successCallback failedCallback:(HWMSDKRejectConfFailedBlock)failedCallback;

/// [en] [cn]ui设置终端的能力集
- (HWMSDKERR)setClientCapabilityWithSupportCapability:(HWMSDKSupportCapabilityModel *)supportCapability;

/// [en] [cn]ui设置本地语言
- (HWMSDKERR)setLocalLanguage:(NSString *)language;

/// [en] [cn]预约周期会议
- (void)bookCycleConfWithParam:(HWMSDKBookCycleConfParamModel *)param successCallback:(HWMSDKBookCycleConfSuccessBlock)successCallback failedCallback:(HWMSDKBookCycleConfFailedBlock)failedCallback;

/// [en] [cn]编辑周期会议
- (void)modifyCycleConfWithParam:(HWMSDKModifyCycleConfParamModel *)param successCallback:(HWMSDKModifyCycleConfSuccessBlock)successCallback failedCallback:(HWMSDKModifyCycleConfFailedBlock)failedCallback;

/// [en] [cn]编辑周期子会议
- (void)modifySubCycleConfWithParam:(HWMSDKModifySubCycleConfParamModel *)param successCallback:(HWMSDKModifySubCycleConfSuccessBlock)successCallback failedCallback:(HWMSDKModifySubCycleConfFailedBlock)failedCallback;

/// [en] [cn]取消周期会议
- (void)cancelCycleConfWithParam:(HWMSDKCancelCycleConfParamModel *)param successCallback:(HWMSDKCancelCycleConfSuccessBlock)successCallback failedCallback:(HWMSDKCancelCycleConfFailedBlock)failedCallback;

/// [en] [cn]取消周期子会议
- (void)cancelSubCycleConfWithParam:(HWMSDKCancelSubCycleConfParamModel *)param successCallback:(HWMSDKCancelSubCycleConfSuccessBlock)successCallback failedCallback:(HWMSDKCancelSubCycleConfFailedBlock)failedCallback;

/// [en] [cn]清空会议相关缓存
- (void)clearConfCache;

/// [en]This class is about getting waiting room dynamic info. [cn]获取等候室动态信息
- (HWMSDKWaitingRoomDynamicInfoModel *)getWaitingRoomDynamicInfo;

/// [en]This class is about getting waiting room manager info. [cn]获取等候室管理员信息
- (NSArray <HWMSDKWaitingRoomManagerInfoModel *> *)getWaitingRoomManagerList;

/// [en] [cn]设置云助端一编一解码（MMR会议）
- (HWMSDKERR)setServerCodecType:(HWMServerCodecType)type;

/// [en] [cn]设置服务器多画面类型
- (HWMSDKERR)setServerMultiPicType:(HWMServerMultiPicType)type;

/// [en] [cn]ui的配置能力集
- (HWMSDKERR)setUIConfigCapabilityWithUiConfigCapability:(HWMSDKUIConfigCapabilityModel *)uiConfigCapability;

/// [en] [cn]通过投屏码发起共享
- (void)startProjectionWithParam:(HWMSDKStartProjectionParamModel *)param successCallback:(HWMSDKStartProjectionSuccessBlock)successCallback failedCallback:(HWMSDKStartProjectionFailedBlock)failedCallback;

- (void)cleanQueryVmrInfoCallbacks;
- (void)cleanQueryConfInfoCallbacks;
- (void)cleanCreateConfCallbacks;
- (void)cleanStartP2PConfCallbacks;
- (void)cleanBookConfCallbacks;
- (void)cleanModifyConfCallbacks;
- (void)cleanModifyVmrInfoCallbacks;
- (void)cleanCancelConfCallbacks;
- (void)cleanJoinConfByIdCallbacks;
- (void)cleanJoinConfAnonymouslyByIdCallbacks;
- (void)cleanAcceptConfCallbacks;
- (void)cleanRejectConfCallbacks;
- (void)cleanBookCycleConfCallbacks;
- (void)cleanModifyCycleConfCallbacks;
- (void)cleanModifySubCycleConfCallbacks;
- (void)cleanCancelCycleConfCallbacks;
- (void)cleanCancelSubCycleConfCallbacks;
- (void)cleanStartProjectionCallbacks;
@end


@interface HWMSDKConfCtrlService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
- (void)addConfCtrlNotifyCallback:(id<HWMSDKConfCtrlNotify>)callback;
- (void)removeConfCtrlNotifyCallback:(id<HWMSDKConfCtrlNotify>)callback;
/// [en]This class is about ending the conference. [cn]主席会控：结束会议 :uninitRender :leaveDataConf :setAudioRouteOutCall :resetAudioRoute
- (void)endConfWithSuccessCallback:(HWMSDKEndConfSuccessBlock)successCallback failedCallback:(HWMSDKEndConfFailedBlock)failedCallback;

/// [en]This class is used to add attendee. [cn]主席会控：添加与会者
- (void)addAttendeeWithAddAttendeeList:(HWMSDKAddAttendeeListModel *)addAttendeeList successCallback:(HWMSDKAddAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKAddAttendeeFailedBlock)failedCallback;

/// [en]This class is used to hangup attendee. [cn]主席会控：挂断与会者
- (void)hangupAttendeeWithUserId:(NSUInteger)userId successCallback:(HWMSDKHangupAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKHangupAttendeeFailedBlock)failedCallback;

/// [en]This class is used to remove attendee. [cn]主席会控：移除与会者
- (void)removeAttendeeWithUserId:(NSUInteger)userId successCallback:(HWMSDKRemoveAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKRemoveAttendeeFailedBlock)failedCallback;

/// [en]This class is used to broadcast/cancel broadcast attendee. [cn]主席会控：广播或取消广播与会者
- (void)broadcastAttendeeWithUserId:(NSUInteger)userId isBroadcast:(BOOL)isBroadcast successCallback:(HWMSDKBroadcastAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKBroadcastAttendeeFailedBlock)failedCallback;

/// [en]This class is used to broadcast/cancel broadcast attendee's screen share. [cn]主席会控：广播或取消广播与会者的共享屏幕
- (void)broadcastAuxPicWithUserId:(NSUInteger)userId isBroadcastAuxPic:(BOOL)isBroadcastAuxPic successCallback:(HWMSDKBroadcastAuxPicSuccessBlock)successCallback failedCallback:(HWMSDKBroadcastAuxPicFailedBlock)failedCallback;

/// [en]This class is used to release host role. [cn]主席会控：释放本人的主席权限
- (void)releaseHostRoleWithSuccessCallback:(HWMSDKReleaseHostRoleSuccessBlock)successCallback failedCallback:(HWMSDKReleaseHostRoleFailedBlock)failedCallback;

/// [en]This class is used to grant someone host role. [cn]主席会控：授予与会者为主席
- (void)grantHostRoleWithUserId:(NSUInteger)userId successCallback:(HWMSDKGrantHostRoleSuccessBlock)successCallback failedCallback:(HWMSDKGrantHostRoleFailedBlock)failedCallback;

/// [en]This class is used to retrieve host role. [cn]会控：收回主席权限
- (void)retrieveHostRoleWithSuccessCallback:(HWMSDKRetrieveHostRoleSuccessBlock)successCallback failedCallback:(HWMSDKRetrieveHostRoleFailedBlock)failedCallback;

/// [en]This class is used to allow someone to unmute himself. [cn]主席会控：允许与会者自己解除静音
- (void)allowAttendeeUnMute:(BOOL)isAllow successCallback:(HWMSDKAllowAttendeeUnMuteSuccessBlock)successCallback failedCallback:(HWMSDKAllowAttendeeUnMuteFailedBlock)failedCallback;

/// [en]This class is used to lock conf. [cn]主席会控：锁定会议
- (void)lockConf:(BOOL)isLock successCallback:(HWMSDKLockConfSuccessBlock)successCallback failedCallback:(HWMSDKLockConfFailedBlock)failedCallback;

/// [en]This class is used to lock share,nobody can start share but host. [cn]主席会控：会议锁定共享
- (void)lockShare:(BOOL)isLockShare successCallback:(HWMSDKLockShareSuccessBlock)successCallback failedCallback:(HWMSDKLockShareFailedBlock)failedCallback;

/// [en]This class is used to lock share,nobody can start share but host. [cn]主席会控：会议锁定共享
- (void)lockShareEx:(BOOL)isLockShare cancelCurrentShare:(BOOL)cancelCurrentShare successCallback:(HWMSDKLockShareExSuccessBlock)successCallback failedCallback:(HWMSDKLockShareExFailedBlock)failedCallback;

/// [en]This class is used to grant/revoke attendee the local record permission. [cn]主席会控：授予/回收与会者本地录制权限
- (void)localRecordGrantAttendeeWithUserId:(NSUInteger)userId enable:(BOOL)enable successCallback:(HWMSDKLocalRecordGrantAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKLocalRecordGrantAttendeeFailedBlock)failedCallback;

/// [en]This class is used to set the mode of local record permission. [cn]主席会控：设置本地录制权限模式
- (void)setLocalRecordModeWithType:(HWMClientRecordMode)type successCallback:(HWMSDKSetLocalRecordModeSuccessBlock)successCallback failedCallback:(HWMSDKSetLocalRecordModeFailedBlock)failedCallback;

/// [en]This class is used to switch attendee role. [cn]主席会控：切换角色
- (void)switchRoleByHostWithUserId:(NSUInteger)userId confRole:(HWMConfRole)confRole successCallback:(HWMSDKSwitchRoleByHostSuccessBlock)successCallback failedCallback:(HWMSDKSwitchRoleByHostFailedBlock)failedCallback;

/// [en]This class is used to turn on/off cloud record. [cn]主席会控：开启关闭云端录制
- (void)operateCloudRecordWithType:(HWMCloudRecordType)type openSummary:(BOOL)openSummary successCallback:(HWMSDKOperateCloudRecordSuccessBlock)successCallback failedCallback:(HWMSDKOperateCloudRecordFailedBlock)failedCallback;

/// [en]This class is used to turn on/off cloud live. [cn]主席会控：开启关闭云端直播
- (void)operateCloudLiveWithType:(HWMCloudLiveType)type successCallback:(HWMSDKOperateCloudLiveSuccessBlock)successCallback failedCallback:(HWMSDKOperateCloudLiveFailedBlock)failedCallback;

/// [en]This class is about setting audience video layout. [cn]主席会控：设置观众选看视频模式 :disable
- (void)setAudienceVideoLayoutWithType:(HWMAudienceLayoutType)type successCallback:(HWMSDKSetAudienceVideoLayoutSuccessBlock)successCallback failedCallback:(HWMSDKSetAudienceVideoLayoutFailedBlock)failedCallback;

/// [en]This class is about allowing the audience to speak [cn]主席会控：允许观众说话
- (void)allowAudienceSpeakWithUserId:(NSUInteger)userId isAllow:(BOOL)isAllow successCallback:(HWMSDKAllowAudienceSpeakSuccessBlock)successCallback failedCallback:(HWMSDKAllowAudienceSpeakFailedBlock)failedCallback;

/// [en]This class is about allowing the audience to join [cn]主席会控：允许观众入会
- (void)allowAudienceJoin:(BOOL)isAllow successCallback:(HWMSDKAllowAudienceJoinSuccessBlock)successCallback failedCallback:(HWMSDKAllowAudienceJoinFailedBlock)failedCallback;

/// [en]This class is about setting or removing co-hosts [cn]主席会控：设置或撤销联席主持人
- (void)setCohostRightWithUserId:(NSUInteger)userId isSetCoHost:(BOOL)isSetCoHost successCallback:(HWMSDKSetCohostRightSuccessBlock)successCallback failedCallback:(HWMSDKSetCohostRightFailedBlock)failedCallback;

/// [en]This class is about the chairman modifying other member names. [cn]主席会控：主席修改其他成员名称
- (void)renameWithParam:(HWMSDKRenameParamModel *)param successCallback:(HWMSDKRenameSuccessBlock)successCallback failedCallback:(HWMSDKRenameFailedBlock)failedCallback;

/// [en]This class is about the attendee allow rename. [cn]主席会控：设置是否允许用户改名
- (void)allowAttendeeRename:(BOOL)isAllow successCallback:(HWMSDKAllowAttendeeRenameSuccessBlock)successCallback failedCallback:(HWMSDKAllowAttendeeRenameFailedBlock)failedCallback;

/// [en]This class is about muting all attendees or not. [cn]主席会控：全场静音与取消静音
- (void)muteAllAttendee:(BOOL)isMute allowUnmute:(BOOL)allowUnmute successCallback:(HWMSDKMuteAllAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKMuteAllAttendeeFailedBlock)failedCallback;

/// [en]This class is about allow waiting attendee enter [cn]主席会控：允许等候者入会
- (void)allowWaitingAttendeeEnterWithUserId:(NSInteger)userId currentMeetingAllow:(BOOL)currentMeetingAllow successCallback:(HWMSDKAllowWaitingAttendeeEnterSuccessBlock)successCallback failedCallback:(HWMSDKAllowWaitingAttendeeEnterFailedBlock)failedCallback;

/// [en]This class is about allow all waiting attendee enter [cn]主席会控：允许所有的等候者入会
- (void)allowAllWaitingAttendeeEnterWithSuccessCallback:(HWMSDKAllowAllWaitingAttendeeEnterSuccessBlock)successCallback failedCallback:(HWMSDKAllowAllWaitingAttendeeEnterFailedBlock)failedCallback;

/// [en]This class is set call in restriction [cn]主席会控：设置允许入会的来宾类型
- (void)updateAllowJoinUserType:(HWMConfAllowJoinUserType)type successCallback:(HWMSDKUpdateAllowJoinUserTypeSuccessBlock)successCallback failedCallback:(HWMSDKUpdateAllowJoinUserTypeFailedBlock)failedCallback;

/// [en]This class is about the host invites or cancels inviting attendees to share the applications or screens. [cn]主席会控：主持人邀请/取消邀请与会者共享应用程序或屏幕
- (void)inviteShareWithUserId:(NSUInteger)userId isShare:(BOOL)isShare successCallback:(HWMSDKInviteShareSuccessBlock)successCallback failedCallback:(HWMSDKInviteShareFailedBlock)failedCallback;

/// [en]This class is used to invite open camera. [cn]主席会控：邀请与会者 开启/关闭 摄像头
- (void)inviteOpenCameraWithUserId:(NSInteger)userId isOpen:(BOOL)isOpen successCallback:(HWMSDKInviteOpenCameraSuccessBlock)successCallback failedCallback:(HWMSDKInviteOpenCameraFailedBlock)failedCallback;

/// [en]This class is used to descrip is allow open camera. [cn]主席会控：是否允许参会者开启视频
- (void)allowAttendeeOpenCamera:(BOOL)isAllow successCallback:(HWMSDKAllowAttendeeOpenCameraSuccessBlock)successCallback failedCallback:(HWMSDKAllowAttendeeOpenCameraFailedBlock)failedCallback;

/// [en]This class is used to request host role. [cn]普通与会者会控：申请主席
- (void)requestHostRoleWithConfPwd:(NSString *)confPwd successCallback:(HWMSDKRequestHostRoleSuccessBlock)successCallback failedCallback:(HWMSDKRequestHostRoleFailedBlock)failedCallback;

/// [en]This class is about leaving the conference and this class is private. [cn]普通与会者会控：离开会议 :uninitRender :leaveDataConf :setAudioRouteOutCall :resetAudioRoute
- (void)leaveConfWithSuccessCallback:(HWMSDKLeaveConfSuccessBlock)successCallback failedCallback:(HWMSDKLeaveConfFailedBlock)failedCallback;

/// [en]This class is about general watch [cn]普通与会者会控：选看 :processHandle
- (HWMSDKERR)generalWatchWithGeneralWatchList:(NSArray <HWMSDKGeneralWatchItemParamModel *> *)generalWatchList;

/// [en]This class is about local record layout [cn]本地录制布局 :disable
- (HWMSDKERR)localRecordLayoutWithLayoutInfo:(HWMSDKRecordLayoutInfoModel *)layoutInfo wndList:(NSArray <HWMSDKRecordWndInfoModel *> *)wndList;

/// [en]This class is used to mute/unmute attendee. [cn]普通与会者会控：静音/取消静音自己或主席取消静音/取消静音与会者
- (void)muteAttendeeWithUserId:(NSUInteger)userId isMute:(BOOL)isMute successCallback:(HWMSDKMuteAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKMuteAttendeeFailedBlock)failedCallback;

/// [en]This class is used to turn on local record. [cn]普通与会者会控：开启本地录制 :disable
- (HWMSDKERR)startLocalRecord;

/// [en]This class is used to request local recording permission. [cn]请求本地录制权限
- (void)requestLocalRecordPermissionWithSuccessCallback:(HWMSDKRequestLocalRecordPermissionSuccessBlock)successCallback failedCallback:(HWMSDKRequestLocalRecordPermissionFailedBlock)failedCallback;

/// [en]This class is used to request cloud recording. [cn]请求云录制权限
- (void)requestStartCloudRecordWithSuccessCallback:(HWMSDKRequestStartCloudRecordSuccessBlock)successCallback failedCallback:(HWMSDKRequestStartCloudRecordFailedBlock)failedCallback;

/// [en]This class is used to answer cloud record request. [cn]回复请求云录制权限
- (HWMSDKERR)answerStartCloudRecordRequestWithParam:(HWMSDKAnswerParamModel *)param;

/// [en]This class is used to answer local record permission request. [cn]回复请求本地录制权限
- (HWMSDKERR)answerLocalRecordPermissionRequestWithParam:(HWMSDKAnswerParamModel *)param;

/// [en]This class is used to finsh local record. [cn]普通与会者会控：结束本地录制 :disable
- (HWMSDKERR)endLocalRecord;

/// [en]This class is used to pause local record. [cn]普通与会者会控：暂停本地录制 :disable
- (HWMSDKERR)pauseLocalRecord;

/// [en]This class is used to resume local record. [cn]普通与会者会控：恢复本地录制 :disable
- (HWMSDKERR)resumeLocalRecord;

/// [en]This class is used to enable audio local record [cn]是否开启音频录制,本地录制结束后将会生成一个mp3文件
- (HWMSDKERR)enableAudioLocalRecordFile:(BOOL)enable;

/// [en]This class is about attendees raising hands. [cn]普通与会者会控：与会者举手
- (void)attendeeHandsupWithUserId:(NSUInteger)userId isHanding:(BOOL)isHanding successCallback:(HWMSDKAttendeeHandsupSuccessBlock)successCallback failedCallback:(HWMSDKAttendeeHandsupFailedBlock)failedCallback;

/// [en]This class is about accepting or rejecting the share invitation. [cn]普通与会者会控：接受/拒绝共享邀请
- (void)answerInviteShare:(BOOL)isAccept rejectReason:(NSUInteger)rejectReason successCallback:(HWMSDKAnswerInviteShareSuccessBlock)successCallback failedCallback:(HWMSDKAnswerInviteShareFailedBlock)failedCallback;

/// [en]This class is used refuse open camera. [cn]普通与会者会控：拒绝开启摄像头
- (void)refuseOpenCameraWithInviterUserId:(NSInteger)inviterUserId successCallback:(HWMSDKRefuseOpenCameraSuccessBlock)successCallback failedCallback:(HWMSDKRefuseOpenCameraFailedBlock)failedCallback;

/// [en]This class is used set camera permission. [cn]普通与会者会控：设置摄像头摄像头权限
- (void)setCameraPermission:(HWMOnlyOpenCameraPermission)permission successCallback:(HWMSDKSetCameraPermissionSuccessBlock)successCallback failedCallback:(HWMSDKSetCameraPermissionFailedBlock)failedCallback;

/// [en]This class is used refuse open mic. [cn]普通与会者会控：拒绝开启麦克风
- (void)refuseOpenMicWithInviterUserId:(NSInteger)inviterUserId successCallback:(HWMSDKRefuseOpenMicSuccessBlock)successCallback failedCallback:(HWMSDKRefuseOpenMicFailedBlock)failedCallback;

/// [en]This class is used to set the local record path. [cn]普通与会者会控：设置本地录制文件路径
- (HWMSDKERR)setLocalRecordPath:(NSURL *)url;

/// [en]This class is used set subtitle. [cn]普通与会者会控：开关字幕
- (void)openSubtitle:(BOOL)isOpen successCallback:(HWMSDKOpenSubtitleSuccessBlock)successCallback failedCallback:(HWMSDKOpenSubtitleFailedBlock)failedCallback;

/// [en]This class is used set subtitle. [cn]普通与会者会控：订阅翻译目标语言
- (HWMSDKERR)subscribeSubtitleLangWithType:(HWMTargetLanguageType)type;

/// [en]This class is used to confirm the role of interpreter. [cn]同声传译：普通与会者会控：传译员确认
- (void)interpreterConfirm:(BOOL)isAccept successCallback:(HWMSDKInterpreterConfirmSuccessBlock)successCallback failedCallback:(HWMSDKInterpreterConfirmFailedBlock)failedCallback;

/// [en]This class is used to set language channel. [cn]同声传译：普通与会者会控：设置语言频道
- (void)setLanguageChannelWithParam:(HWMSDKLanguageChannelParamModel *)param successCallback:(HWMSDKSetLanguageChannelSuccessBlock)successCallback failedCallback:(HWMSDKSetLanguageChannelFailedBlock)failedCallback;

/// [en]This class is used to set asr language. [cn]同声传译：设置asr翻译语言
- (HWMSDKERR)setAsrSrcLanguageWithType:(HWMConfSupportLanguageType)type;

/// [en]This class is about remove waiting attendee [cn]等候室：主席会控：移除等候室成员
- (void)removeWaitingAttendeeWithUserId:(NSInteger)userId successCallback:(HWMSDKRemoveWaitingAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKRemoveWaitingAttendeeFailedBlock)failedCallback;

/// [en]This class is about remove all waiting attendee [cn]等候室：主席会控：移出全部等候室成员
- (void)removeAllWaitingAttendeeWithSuccessCallback:(HWMSDKRemoveAllWaitingAttendeeSuccessBlock)successCallback failedCallback:(HWMSDKRemoveAllWaitingAttendeeFailedBlock)failedCallback;

/// [en]This class is move to waiting room [cn]等候室：主席会控：移入等候室
- (void)moveToWaitingRoomWithUserId:(NSInteger)userId successCallback:(HWMSDKMoveToWaitingRoomSuccessBlock)successCallback failedCallback:(HWMSDKMoveToWaitingRoomFailedBlock)failedCallback;

/// [en]This class is open or close waiting room [cn]等候室：主席会控：启用或关闭等候室
- (void)openWaitingRoom:(BOOL)isOpen successCallback:(HWMSDKOpenWaitingRoomSuccessBlock)successCallback failedCallback:(HWMSDKOpenWaitingRoomFailedBlock)failedCallback;

/// [en]This class is about host suspending conference. [cn]网络研讨会：主席会控：主持人启动/暂停会议
- (void)pauseConf:(BOOL)isPause successCallback:(HWMSDKPauseConfSuccessBlock)successCallback failedCallback:(HWMSDKPauseConfFailedBlock)failedCallback;

/// [en]disable the voice prompts. [cn]禁用提示音
- (HWMSDKERR)disableVoicePrompts:(HWMSDKVoicePromptsModel *)voicePrompts;

/// [en] [cn]创建分组会议
- (void)createBreakoutConfWithParam:(HWMSDKCreateBreakoutConfParamModel *)param successCallback:(HWMSDKCreateBreakoutConfSuccessBlock)successCallback failedCallback:(HWMSDKCreateBreakoutConfFailedBlock)failedCallback;

/// [en] [cn]设置分组会议配置信息
- (void)setBreakoutConfBasicSettingWithBreakoutConfSetting:(HWMSDKBreakoutConfBasicSettingModel *)breakoutConfSetting successCallback:(HWMSDKSetBreakoutConfBasicSettingSuccessBlock)successCallback failedCallback:(HWMSDKSetBreakoutConfBasicSettingFailedBlock)failedCallback;

/// [en]This class is about start or stop breakout conference. [cn]主持人开始/停止分组讨论
- (void)controlBreakoutConfWithType:(HWMControlBreakoutType)type successCallback:(HWMSDKControlBreakoutConfSuccessBlock)successCallback failedCallback:(HWMSDKControlBreakoutConfFailedBlock)failedCallback;

/// [en]This class is about move breakout attendees before conf start. [cn]分组开始前调整分组成员
- (void)moveAttendeeBeforeBreakoutConfWithMoveBeforeBreakoutConfAttendeeList:(HWMSDKMoveBeforeBreakoutConfAttendeeListModel *)moveBeforeBreakoutConfAttendeeList successCallback:(HWMSDKMoveAttendeeBeforeBreakoutConfSuccessBlock)successCallback failedCallback:(HWMSDKMoveAttendeeBeforeBreakoutConfFailedBlock)failedCallback;

/// [en]This class is about add breakout sub conference. [cn]新增讨论组
- (void)addBreakoutSubConfWithParam:(HWMSDKAddBreakoutSubConfParamModel *)param successCallback:(HWMSDKAddBreakoutSubConfSuccessBlock)successCallback failedCallback:(HWMSDKAddBreakoutSubConfFailedBlock)failedCallback;

/// [en]This class is about modify breakout sub conference. [cn]修改静态分组名
- (void)modifyBreakoutSubConfWithParam:(HWMSDKModifyBreakoutSubConfParamModel *)param successCallback:(HWMSDKModifyBreakoutSubConfSuccessBlock)successCallback failedCallback:(HWMSDKModifyBreakoutSubConfFailedBlock)failedCallback;

/// [en]This class is about delete breakout sub conference. [cn]删除讨论组
- (void)deleteBreakoutSubConfWithParam:(HWMSDKDeleteBreakoutSubConfParamModel *)param successCallback:(HWMSDKDeleteBreakoutSubConfSuccessBlock)successCallback failedCallback:(HWMSDKDeleteBreakoutSubConfFailedBlock)failedCallback;

/// [en]This class is about ask help in breakout conference. [cn]请求主持人帮助
- (void)askHelpWithParam:(HWMSDKAskHelpParamModel *)param successCallback:(HWMSDKAskHelpSuccessBlock)successCallback failedCallback:(HWMSDKAskHelpFailedBlock)failedCallback;

/// [en]This class is about answer help in breakout conference. [cn]主持人应答帮助
- (void)answerHelpWithParam:(HWMSDKAnswerHelpParamModel *)param successCallback:(HWMSDKAnswerHelpSuccessBlock)successCallback failedCallback:(HWMSDKAnswerHelpFailedBlock)failedCallback;

/// [en]This class is about moving attendee during breakout conference. [cn]分组会议中移动分组成员
- (void)moveAttendeeInBreakoutConfWithMoveBreakoutConfAttendeeInfo:(HWMSDKMoveBreakoutConfAttendeeInfoModel *)moveBreakoutConfAttendeeInfo successCallback:(HWMSDKMoveAttendeeInBreakoutConfSuccessBlock)successCallback failedCallback:(HWMSDKMoveAttendeeInBreakoutConfFailedBlock)failedCallback;

/// [en]This class is about subscribe conf Notifications. [cn]通用订阅消息接口
- (void)subscribeConfNotifysWithSubscribeCollection:(HWMSubscribeConfNotifyType)subscribeCollection isOpen:(BOOL)isOpen successCallback:(HWMSDKSubscribeConfNotifysSuccessBlock)successCallback failedCallback:(HWMSDKSubscribeConfNotifysFailedBlock)failedCallback;

/// [en] [cn]通过会议ID加入分组会议
- (void)joinBreakoutConfByIdWithParam:(HWMSDKJoinBreakoutConfByIdParamModel *)param successCallback:(HWMSDKJoinBreakoutConfByIdSuccessBlock)successCallback failedCallback:(HWMSDKJoinBreakoutConfByIdFailedBlock)failedCallback;

/// [en] [cn]返回主会场
- (void)returnMainconfWithParam:(HWMSDKReturnConfParamModel *)param successCallback:(HWMSDKReturnMainconfSuccessBlock)successCallback failedCallback:(HWMSDKReturnMainconfFailedBlock)failedCallback;

/// [en] [cn]是否支持最大流(1080p), 会中调整流
- (HWMSDKERR)supportMaxStream:(BOOL)support;

/// [en]This class is about request annotation . [cn]申请标注 :inConf
- (void)requestAnnotationWithUserId:(NSInteger)userId successCallback:(HWMSDKRequestAnnotationSuccessBlock)successCallback failedCallback:(HWMSDKRequestAnnotationFailedBlock)failedCallback;

/// [en]xxxx. [cn]主席会控：修改会议抢共享权限
- (void)modifyInterruptSharePermission:(HWMInterruptSharePermission)permission successCallback:(HWMSDKModifyInterruptSharePermissionSuccessBlock)successCallback failedCallback:(HWMSDKModifyInterruptSharePermissionFailedBlock)failedCallback;

/// [en]This function is about set dataconf qos info. [cn]设置会议组件qos信息
- (HWMSDKERR)setShareQosInfoWithPacketLoss:(NSUInteger)packetLoss delay:(NSUInteger)delay jitter:(NSUInteger)jitter;

/// [en]This function is about send chat messages. [cn]会中聊天：发送消息
- (void)sendChatMessageWithMessageInfo:(HWMSDKSendChatMessageInfoModel *)messageInfo successCallback:(HWMSDKSendChatMessageSuccessBlock)successCallback failedCallback:(HWMSDKSendChatMessageFailedBlock)failedCallback;

/// [en]This function is about query chat messages. [cn]会中聊天：查询消息
- (void)queryChatMessageWithMessageInfo:(HWMSDKQueryChatMessageInfoModel *)messageInfo successCallback:(HWMSDKQueryChatMessageSuccessBlock)successCallback failedCallback:(HWMSDKQueryChatMessageFailedBlock)failedCallback;

/// [en]xxxx. [cn]投屏会议转普通会议
- (void)switchProjectionToConfWithSuccessCallback:(HWMSDKSwitchProjectionToConfSuccessBlock)successCallback failedCallback:(HWMSDKSwitchProjectionToConfFailedBlock)failedCallback;

/// [en]This class is about ending the conference. [cn]投屏者或大屏：结束会议 :uninitRender :leaveDataConf :setAudioRouteOutCall :resetAudioRoute
- (void)endProjectionConfWithMode:(HWMEndProjectionConfMode)mode successCallback:(HWMSDKEndProjectionConfSuccessBlock)successCallback failedCallback:(HWMSDKEndProjectionConfFailedBlock)failedCallback;

/// [en]This class is about set auto mute. [cn]入会自动静音
- (void)setAutoMuteWithType:(HWMTerminalType)type isMute:(BOOL)isMute successCallback:(HWMSDKSetAutoMuteSuccessBlock)successCallback failedCallback:(HWMSDKSetAutoMuteFailedBlock)failedCallback;

/// [en]This class is about report speaking status. [cn]主讲人终端开始/停止发言
- (HWMSDKERR)setSpeakingStateWithStatus:(HWMSpeakingStatus)status;

/// [en]This class is used to show digitalman. [cn]设置显示自己的数字人形象
- (HWMSDKERR)setShowDigitalManWithState:(HWMDigitalManState)state;

/// [en]Notify whether the 3L webinar is successfully pulled. [cn]通知3L网络研讨会是否拉流成功
- (HWMSDKERR)setLiveWebinarPullStreamResult:(BOOL)pullResult;

/// [en]This class is used to set forbidden screen shots enable type. [cn]设置禁止截屏状态
- (void)setForbiddenScreenShotsEnableWithType:(HWMForbiddenScreenShotsEnableType)type successCallback:(HWMSDKSetForbiddenScreenShotsEnableSuccessBlock)successCallback failedCallback:(HWMSDKSetForbiddenScreenShotsEnableFailedBlock)failedCallback;

/// [en]This class is used to set water mark state. [cn]设置水印开关状态
- (void)setWaterMarkEnableWithType:(HWMWaterMarkEnableType)type successCallback:(HWMSDKSetWaterMarkEnableSuccessBlock)successCallback failedCallback:(HWMSDKSetWaterMarkEnableFailedBlock)failedCallback;

/// [en]This class is used to set audio dataguard enable. [cn]设置音频暗水印开关状态
- (void)setDataGuardAudioEnable:(BOOL)type successCallback:(HWMSDKSetDataGuardAudioEnableSuccessBlock)successCallback failedCallback:(HWMSDKSetDataGuardAudioEnableFailedBlock)failedCallback;

/// [en]This class is used to set video data guard enable. [cn]设置视频暗水印开关
- (void)setDataGuardVideoEnable:(BOOL)type successCallback:(HWMSDKSetDataGuardVideoEnableSuccessBlock)successCallback failedCallback:(HWMSDKSetDataGuardVideoEnableFailedBlock)failedCallback;

/// [en]This class is used to set custominfo [cn]设置用户数据
- (void)setCustomInfo:(NSString *)customInfo successCallback:(HWMSDKSetCustomInfoSuccessBlock)successCallback failedCallback:(HWMSDKSetCustomInfoFailedBlock)failedCallback;

/// [en]This class is used to invite intelligent assistant. [cn]邀请语音助手
- (void)inviteIntelligentAssistantWithSuccessCallback:(HWMSDKInviteIntelligentAssistantSuccessBlock)successCallback failedCallback:(HWMSDKInviteIntelligentAssistantFailedBlock)failedCallback;

/// [en]This class is used to operate intelligent assistant. [cn]操作语音助手
- (void)operateIntelligentAssistantWithOperation:(HWMIntelligentAssistantOperation)operation successCallback:(HWMSDKOperateIntelligentAssistantSuccessBlock)successCallback failedCallback:(HWMSDKOperateIntelligentAssistantFailedBlock)failedCallback;

/// [en]This class is used to operate intelligent assistant. [cn]设置问答模式
- (void)setQuestionAnswerMode:(HWMQuestionAnswerMode)mode successCallback:(HWMSDKSetQuestionAnswerModeSuccessBlock)successCallback failedCallback:(HWMSDKSetQuestionAnswerModeFailedBlock)failedCallback;

/// [en]This class is used to request invite intelligent assistant. [cn]普通与会者请求邀请语音助手
- (void)requestInviteIntelligentAssistantWithSuccessCallback:(HWMSDKRequestInviteIntelligentAssistantSuccessBlock)successCallback failedCallback:(HWMSDKRequestInviteIntelligentAssistantFailedBlock)failedCallback;

/// [en]This class is used to answer invite intelligent assistant request. [cn]回复请求邀请智能语音助手
- (HWMSDKERR)answerInviteIntelligentAssistantRequestWithParam:(HWMSDKAnswerParamModel *)param;

- (void)cleanEndConfCallbacks;
- (void)cleanAddAttendeeCallbacks;
- (void)cleanHangupAttendeeCallbacks;
- (void)cleanRemoveAttendeeCallbacks;
- (void)cleanBroadcastAttendeeCallbacks;
- (void)cleanBroadcastAuxPicCallbacks;
- (void)cleanReleaseHostRoleCallbacks;
- (void)cleanGrantHostRoleCallbacks;
- (void)cleanRetrieveHostRoleCallbacks;
- (void)cleanAllowAttendeeUnMuteCallbacks;
- (void)cleanLockConfCallbacks;
- (void)cleanLockShareCallbacks;
- (void)cleanLockShareExCallbacks;
- (void)cleanLocalRecordGrantAttendeeCallbacks;
- (void)cleanSetLocalRecordModeCallbacks;
- (void)cleanSwitchRoleByHostCallbacks;
- (void)cleanOperateCloudRecordCallbacks;
- (void)cleanOperateCloudLiveCallbacks;
- (void)cleanSetAudienceVideoLayoutCallbacks;
- (void)cleanAllowAudienceSpeakCallbacks;
- (void)cleanAllowAudienceJoinCallbacks;
- (void)cleanSetCohostRightCallbacks;
- (void)cleanRenameCallbacks;
- (void)cleanAllowAttendeeRenameCallbacks;
- (void)cleanMuteAllAttendeeCallbacks;
- (void)cleanAllowWaitingAttendeeEnterCallbacks;
- (void)cleanAllowAllWaitingAttendeeEnterCallbacks;
- (void)cleanUpdateAllowJoinUserTypeCallbacks;
- (void)cleanInviteShareCallbacks;
- (void)cleanInviteOpenCameraCallbacks;
- (void)cleanAllowAttendeeOpenCameraCallbacks;
- (void)cleanRequestHostRoleCallbacks;
- (void)cleanLeaveConfCallbacks;
- (void)cleanMuteAttendeeCallbacks;
- (void)cleanRequestLocalRecordPermissionCallbacks;
- (void)cleanRequestStartCloudRecordCallbacks;
- (void)cleanAttendeeHandsupCallbacks;
- (void)cleanAnswerInviteShareCallbacks;
- (void)cleanRefuseOpenCameraCallbacks;
- (void)cleanSetCameraPermissionCallbacks;
- (void)cleanRefuseOpenMicCallbacks;
- (void)cleanOpenSubtitleCallbacks;
- (void)cleanInterpreterConfirmCallbacks;
- (void)cleanSetLanguageChannelCallbacks;
- (void)cleanRemoveWaitingAttendeeCallbacks;
- (void)cleanRemoveAllWaitingAttendeeCallbacks;
- (void)cleanMoveToWaitingRoomCallbacks;
- (void)cleanOpenWaitingRoomCallbacks;
- (void)cleanPauseConfCallbacks;
- (void)cleanCreateBreakoutConfCallbacks;
- (void)cleanSetBreakoutConfBasicSettingCallbacks;
- (void)cleanControlBreakoutConfCallbacks;
- (void)cleanMoveAttendeeBeforeBreakoutConfCallbacks;
- (void)cleanAddBreakoutSubConfCallbacks;
- (void)cleanModifyBreakoutSubConfCallbacks;
- (void)cleanDeleteBreakoutSubConfCallbacks;
- (void)cleanAskHelpCallbacks;
- (void)cleanAnswerHelpCallbacks;
- (void)cleanMoveAttendeeInBreakoutConfCallbacks;
- (void)cleanSubscribeConfNotifysCallbacks;
- (void)cleanJoinBreakoutConfByIdCallbacks;
- (void)cleanReturnMainconfCallbacks;
- (void)cleanRequestAnnotationCallbacks;
- (void)cleanModifyInterruptSharePermissionCallbacks;
- (void)cleanSendChatMessageCallbacks;
- (void)cleanQueryChatMessageCallbacks;
- (void)cleanSwitchProjectionToConfCallbacks;
- (void)cleanEndProjectionConfCallbacks;
- (void)cleanSetAutoMuteCallbacks;
- (void)cleanSetForbiddenScreenShotsEnableCallbacks;
- (void)cleanSetWaterMarkEnableCallbacks;
- (void)cleanSetDataGuardAudioEnableCallbacks;
- (void)cleanSetDataGuardVideoEnableCallbacks;
- (void)cleanSetCustomInfoCallbacks;
- (void)cleanInviteIntelligentAssistantCallbacks;
- (void)cleanOperateIntelligentAssistantCallbacks;
- (void)cleanSetQuestionAnswerModeCallbacks;
- (void)cleanRequestInviteIntelligentAssistantCallbacks;
@end


@interface HWMSDKConfStateService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
- (void)addConfStateNotifyCallback:(id<HWMSDKConfStateNotify>)callback;
- (void)removeConfStateNotifyCallback:(id<HWMSDKConfStateNotify>)callback;
- (void)addLocalVideoInfoNotifyCallbackWithLocalVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)localVideoInfoNotifyCallback;
- (void)removeLocalVideoInfoNotifyCallbackWithLocalVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)localVideoInfoNotifyCallback;
- (void)addMajorVideoInfoNotifyCallbackWithMajorVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)majorVideoInfoNotifyCallback;
- (void)removeMajorVideoInfoNotifyCallbackWithMajorVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)majorVideoInfoNotifyCallback;
- (void)addNormalVideoInfoNotifyCallbackWithNormalVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)normalVideoInfoNotifyCallback;
- (void)removeNormalVideoInfoNotifyCallbackWithNormalVideoInfoNotifyCallback:(id<HWMSDKVideoInfoNotify>)normalVideoInfoNotifyCallback;
/// [en]This class is about the synchronized method for getting the basic information of the conference state. [cn]获取会议中基本信息
- (HWMSDKMeetingInfoModel *)getMeetingInfo;

/// [en]This class is about getting the basic information of myself,including some fixed information like userId, orgId number, etc. [cn]获取自己的固定信息
- (HWMSDKSelfConstantInfoModel *)getSelfConstantInfo;

/// [en]This class is about getting my information that whether I have raised hand or not. [cn]获取我的信息:是否举手
- (BOOL)getSelfHandup;

/// [en]This class is about getting my information：what my name is. [cn]获取我的信息:我的名称
- (HWMSDKNameInfoModel *)getSelfName;

/// [en]This class is about getting my information：what my role is. [cn]获取我的信息:我的角色
- (HWMConfRole)getSelfRole;

/// [en]This class is about my infomation of simultaneous interpretation. [cn]获取我的信息:同声传译信息
- (HWMSDKInterpreterInfoModel *)getSelfInterpreter;

/// [en]This class is about getting my information that whether I have recording permissions on the cloud. [cn]获取我的信息:是否有云上录播权限
- (BOOL)getSelfHasCloudRecordPermission;

/// [en]This class is about getting my information that whether I have local recording permissions. [cn]获取我的信息:是否有直播权限
- (BOOL)getSelfHasCloudLivePermission;

/// [en]This class is about getting my information that whether I have local live permissions. [cn]获取我的信息:是否有本地录播权限
- (BOOL)getSelfHasLocalRecordPermission;

/// [en]This class is about my share status. [cn]获取我的信息:共享状态
- (BOOL)getSelfShareState;

/// [en]This class is about getting my information that whether I have been invited or not. [cn]获取我的信息:自己是否被邀请共享
- (BOOL)getSelfIsInvitedShare;

/// [en]This class is about getting my share mode. [cn]获取我的信息:自己的共享模式
- (HWMConfShareMode)getSelfShareMode;

/// [en]This class is about getting my information that whether I has retrieve host or not. [cn]获取我的信息:自己是否有收回主持人权限
- (BOOL)getSelfHasRetrieveHostPermission;

/// [en]This class is about getting the conference state: conf mode type. [cn]获取会议状态:会议模式
- (HWMConfModeType)getConfModeType;

/// [en]This class is about getting the conference state: broadcast information. [cn]获取会议状态:广播信息
- (HWMSDKBroadcastInfoModel *)getConfBroadcastInfo;

/// [en]This class is about getting attendees's broadcast screen share info. [cn]获取与会人广播共享信息
- (HWMSDKBroadcastAuxPicInfoModel *)getBroadcastAuxPicInfo;

/// [en]This class is about getting the conference state: roll call information. [cn]获取会议状态:点名信息
- (HWMSDKRollCallInfoModel *)getConfRollCallInfo;

/// [en]This class is about getting the conference state: whether all the audiences in conference are muted . [cn]获取会议状态:是否全场静音
- (BOOL)getConfIsAllMuted;

/// [en]This class is about getting the conference state: whether the conference supports subtitles. [cn]获取会议状态:是否支持字幕
- (BOOL)getConfIsSupportSubtitle;

/// [en]This class is about getting the conference state: the information of subtitle src language ability. [cn]获取会议状态:获取字幕翻译源语言能力
- (NSArray <HWMSDKConfLanguageChannelInfoModel *> *)getConfSubtitleLanguageSrc;

/// [en]This class is about getting the conference state: the information of subtitle dst language ability. [cn]获取会议状态:获取字幕翻译目标语言能力
- (NSArray <HWMSDKConfLanguageChannelInfoModel *> *)getConfSubtitleLanguageDst;

/// [en]This class is about getting the conference state: whether the conference is allowed to be unmuted. [cn]获取会议状态:是否允许解除静音
- (BOOL)getConfIsAllowUnmute;

/// [en]This class is about getting the conference state: whether the conference is locked. [cn]获取会议状态:是否锁定
- (BOOL)getConfIsLocked;

/// [en]This class is about getting the conference state: whether the conference shares lock. [cn]获取会议状态:是否共享锁定
- (BOOL)getConfIsShareLocked;

/// [en]This class is about getting the conference state:permission type of chat. [cn]获取会议状态:聊天权限
- (HWMChatPermission)getChatPermission;

/// [en]This class is about getting the conference state: whether the conference is paused. [cn]获取会议状态:是否暂停
- (BOOL)getConfIsPaused;

/// [en]This class is about getting the conference state: whether the watermark is opened. [cn]获取会议状态:是否开启水印 -- 已废弃
- (BOOL)getConfSupportWatermark;

/// [en]This class is about getting the conference state: enable water mark. [cn]获取会议状态:水印开关状态
- (HWMWaterMarkEnableType)getConfWaterMarkEnable;

/// [en]This class is about getting the conference state:corp enable force water mark. [cn]获取会议状态:会议所在企业是否开启强制水印
- (BOOL)getConfCorpForcedEnableWaterMark;

/// [en]This class is about getting the conference state:corp support water mark. [cn]获取会议状态:会议所在企业是否支持水印
- (BOOL)getConfCorpSupportWaterMark;

/// [en]This class is about getting the conference state:corp support audio dataguard. [cn]获取会议状态:会议是否打开音频暗水印
- (BOOL)getConfEnableDataGuardAudio;

/// [en]This class is about getting the conference state:corp support video dataguard. [cn]获取会议状态:会议是否打开视频暗水印
- (BOOL)getConfEnableDataGuardVideo;

/// [en]This class is about getting the conference state:corp support to enable audio dataguard. [cn]获取会议状态:会议所在企业是否支持打开音频暗水印
- (BOOL)getConfCorpEnableDataGuardAudio;

/// [en]This class is about getting the conference state:corp support to enable video dataguard. [cn]获取会议状态:会议所在企业是否支持打开视频暗水印
- (BOOL)getConfCorpEnableDataGuardVideo;

/// [en]This class is about getting the conference state:corp support forbidden screen shots. [cn]获取会议状态:会议所在企业是否支持防截屏
- (BOOL)getConfCorpSupportForbiddenScreenShots;

/// [en]This class is about getting the conference state: whether the conference supports the co-host function. [cn]获取会议状态:是否支持联席主持人
- (BOOL)getConfSupportCohost;

/// [en]This class is about getting the conference state: whether the conference supports the inviteshare function. [cn]获取会议状态:是否支持邀请共享
- (BOOL)getConfSupportInviteShare;

/// [en]This class is about getting the conference state: whether the conference supports the inviteshare function. [cn]获取会议状态:是否禁止截屏
- (BOOL)getConfForbiddenScreenShots;

/// [en]This class is about getting the conference state: forbiden screen shots. [cn]获取会议状态:禁止截屏状态
- (HWMForbiddenScreenShotsEnableType)getConfForbiddenScreenShotsEnable;

/// [en]This class is about getting the conference state: whether the conference supports the cancel share function. [cn]获取会议状态:是否支持取消共享
- (BOOL)getConfEnableCancelShare;

/// [en]This class is about getting the conference state: the number of online attendees. [cn]获取会议状态:在线与会者个数
- (HWMSDKAttendeeSizeInfoModel *)getConfAttendeeSize;

/// [en]This class is about getting the conference state: the information of raising hands. [cn]获取会议状态:举手信息
- (HWMSDKConfHandupInfoModel *)getConfHandupInfo;

/// [en]This class is about getting the conference state: whether the simultaneous interpretation has been opened. [cn]同声传译：获取会议状态:是否开启同声传译
- (BOOL)getConfIsSimuInterpretOpened;

/// [en]This class is about getting the conference state: the information of simultaneous interpretation. [cn]同声传译：获取会议状态:同声传译信息
- (NSArray <HWMSDKConfLanguageChannelInfoModel *> *)getConfSimuInterpret;

/// [en]This class is about getting the conference state: whether the conference supports the simuInterpret function. [cn]获取会议状态:是否支持同声传译
- (BOOL)getConfSupportSimuInterpret;

/// [en]This class is about getting the conference state: simuInterpret type. [cn]获取会议状态:同声传译类型
- (HWMSimultaneousInterpretType)getSimultaneousInterpretationType;

/// [en]This class is about getting the conference state: the information of local recording . [cn]获取会议状态:本地录制信息(比如会场中是否有与会者在录制, 非本人的录制状态)
- (HWMSDKLocalRecordInfoModel *)getConfLocalRecord;

/// [en]This class is about getting the conference state: the information of local recording . [cn]获取自己的状态:本地录制信息
- (HWMSDKLocalRecordPathInfoModel *)getSelfLocalRecord;

/// [en]This class is about getting the conference state: the information of cloud recording. [cn]获取会议状态:云上录制信息
- (HWMSDKCloudRecordInfoModel *)getConfCloudRecord;

/// [en]This class is about getting the conference state: the information of cloud live. [cn]获取会议状态:云上直播信息
- (HWMCloudLiveStatus)getConfCloudLive;

/// [en]This class is about getting the conference state: whether there is a host in the conference. [cn]获取会议状态:会议是否有主持人
- (BOOL)getConfHasHost;

/// [en]This class is about getting the conference state: host user id. [cn]获取会议状态:获取主持人用户id
- (NSUInteger)getConfHost;

/// [en]This class is about getting the conference state: whether the conference has been connected. [cn]获取会议状态:会议是否连接
- (BOOL)getConfIsConnected;

/// [en]This class is about getting the list of all the attendees. [cn]获取所有的与会者
- (NSArray <HWMSDKAttendeeInfoModel *> *)getAttendeeList;

/// [en]This class is about getting the list of all the attendees of online video. [cn]获取在线视频与会者
- (NSArray <HWMSDKAttendeeInfoModel *> *)getVideoAttendeeList;

/// [en]This class is about getting the speaker list. [cn]获取最大发言人
- (NSArray <HWMSDKConfSpeakerModel *> *)getSpeakerList;

/// [en]This class is about getting attendees by userId. [cn]通过userId获取与会人信息
- (HWMSDKAttendeeInfoModel *)getAttendeeWithUserId:(NSInteger)userId;

/// [en]This class is about the conference status :the type of users allowed to join the conference . [cn]获取会议状态:允许入会范围
- (HWMConfAllowJoinUserType)getConfAllowJoinUserType;

/// [en]This class is about my status: whether the information of in conference is anonymous. [cn]获取我的信息:是否匿名入会
- (BOOL)getSelfIsAnonymous;

/// [en]This api is about getting custom multi info [cn]获取广播多画面信息
- (HWMSDKCustomMultiPicInfoModel *)getCustomMultiPictureInfo;

/// [en]This class is about getting commercial status. [cn]获取商用资源是否激活
- (HWMCommercialStatusType)getCommercialStatus;

/// [en]This class is about getting the QOS information of conference audio stream. [cn]获取会议音频流QOS信息
- (NSArray <HWMSDKAudioStatsInfoModel *> *)getAudioQOSInfo;

/// [en]This class is about getting the QOS information of conference video stream. [cn]获取会议视频流QOS信息
- (NSArray <HWMSDKVideoStatsInfoModel *> *)getVideoQOSInfo;

/// [en]This class is about getting the QOS information of data conference. [cn]获取数据会议QOS信息
- (HWMSDKDataConfQosInfoModel *)getDataConfQOSInfo;

/// [en]This class is about getting the QOS information of audio video and data. [cn]获取音频、视频、数据会议QOS信息
- (HWMSDKQosStateInfoModel *)getQOSInfo;

/// [en]This class is about getting the user's window name. [cn]通过用户ID获取会场名称
- (HWMSDKNameInfoModel *)getVideoNameWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting whether the user's window is mute. [cn]获取用户窗口是否静音
- (BOOL)getVideoIsMuteWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting whether the user's window audio state. [cn]获取用户窗口音频状态
- (HWMAudioState)getVideoAudioStateWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting whether the user's window has hands raised. [cn]获取用户窗口是否举手
- (BOOL)getVideoIsHandupWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting whether the user's window is max speaker. [cn]获取用户窗口是否是最大发言人
- (BOOL)getVideoIsMaxSpeakerWithUserId:(NSUInteger)userId;

/// [en]This class is about getting whether the user's video is loading. [cn]获取用户视频是否在加载中
- (BOOL)getVideoIsLoadingWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting whether the user's video has camera stream. [cn]获取用户窗口是否有摄像头流
- (HWMStreamType)getVideoStreamTypeWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting the network quality of user's window. [cn]获取用户窗口网络质量
- (NSUInteger)getVideoNetQualityWithUserId:(NSUInteger)userId isMajorVideo:(BOOL)isMajorVideo;

/// [en]This class is about getting the name of local video window. [cn]获取本地视频窗口名称
- (HWMSDKNameInfoModel *)getLocalVideoName;

/// [en]This class is about getting whether the local video window is muted. [cn]获取本地视频窗口是否静音
- (BOOL)getLocalVideoIsMute;

/// [en]This class is about getting whether the local video window audio state. [cn]获取本地视频窗口音频状态
- (HWMAudioState)getLocalVideoAudioState;

/// [en]This class is about getting whether there are raised hands in the local window. [cn]获取本地视频窗口是否举手
- (BOOL)getLocalVideoIsHandup;

/// [en]This class is about getting whether the local video window is highlighted. [cn]获取本地视频窗口是否高亮
- (BOOL)getLocalVideoIsHighLight;

/// [en]This class is about getting whether the local video window is dealing with circling. [cn]获取本地视频窗口是否转圈
- (BOOL)getLocalVideoIsLoading;

/// [en]This class is about getting whether the local video window covers the default picture. [cn]获取本地视频窗口是否遮挡默认图片
- (BOOL)getLocalVideoIsCoverImage;

/// [en]This class is about getting network quality of the local video window. [cn]获取本地视频窗口网络质量
- (NSUInteger)getLocalVideoNetQuality;

/// [en]This class is about getting user id of major video. [cn]获取主视频画面人员id
- (NSUInteger)getMajorVideoUserId;

/// [en]This class is used to get is allow open camera. [cn]会议状态：获取是否允许参会者开启视频
- (BOOL)getIsAllowOpenCamera;

/// [en]This class is used to descrip is need invite open mic. [cn]功能开关：是否需要主持人邀请开启麦克风
- (BOOL)getIsInviteOpenMic;

/// [en]This class is used to descrip support invite mic. [cn]功能开关：主持人邀请开启与会人麦克风
- (BOOL)getSupportInviteMic;

/// [en]This class is used to descrip support invite camera. [cn]功能开关：主持人邀请开启与会人摄像头
- (BOOL)getSupportInviteCamera;

/// [en]This class is used to descrip enable force close camera. [cn]主席会控：获取主持人能否强制关闭与会人摄像头
- (BOOL)getEnableForceCloseCamera;

/// [en]This class is used to descrip enable allow open camera. [cn]主席会控：主持人是否允许与会人自行开启摄像头
- (BOOL)getEnableAllowOpenCamera;

/// [en]This class is used to get enable origin voice. [cn]获取与会者支持选择收听原声频道
- (BOOL)getEnableOriginVoice;

/// [en]This class is about the attendee allow rename. [cn]会中查询是否允许用户改名
- (BOOL)getConfIsAllowRename;

/// [en]This class is about the conference status that whether the barrage switch is on. [cn]获取会议状态:弹幕开关
- (BOOL)getConfBarrageSwitch;

/// [en]This class is about the conference status that whether the waiting room is supported. [cn]等候室：获取会议状态:是否支持等候室
- (BOOL)getConfSupportWaitingRoom;

/// [en]This class is about the conference status that whether the waiting room will be opened.. [cn]等候室：获取会议状态:是否开启等候室
- (BOOL)getConfIsOpenWaitingRoom;

/// [en]This class is about getting the list of members in waiting room. [cn]等候室：获取等候室成员列表
- (NSArray <HWMSDKAttendeeInfoModel *> *)getWaitingList;

/// [en]This class is about getting the information of waiting room. [cn]等候室：获取等候室信息
- (HWMSDKWaitingRoomInfoModel *)getWaitingRoomInfo;

/// [en]This class is about getting the conference state: the number of waiting attendees. [cn]等候室：获取会议状态:等候室成员个数
- (NSUInteger)getWaitingAttendeeSize;

/// [en]This class is about getting my information that whether I am allowed to speak or not. [cn]网络研讨会：获取我的信息:是否允许说话
- (BOOL)getSelfAllowSpeak;

/// [en]This class is about getting my information that whether I can be turned into audience. [cn]网络研讨会：获取我的信息:是否可以转成观众
- (BOOL)getSelfCanSwitchToAudience;

/// [en]This class is about getting the conference state: the number of audiences. [cn]网络研讨会：获取会议状态:观众个数
- (NSUInteger)getConfAudienceSize;

/// [en]This class is about getting the conference state: the viewing mode of the audience. [cn]网络研讨会：获取会议状态:观众的观看视频模式
- (HWMAudienceLayoutType)getConfAudienceVideoLayout;

/// [en]This class is about getting the conference state: whether the audiences are allowed to join the conference. [cn]网络研讨会：获取会议状态:是否允许观众入会
- (BOOL)getConfIsAllowAudienceJoin;

/// [en]This class is about getting the list of all the audiences. [cn]网络研讨会：获取所有的观众
- (NSArray <HWMSDKAttendeeInfoModel *> *)getAudienceList;

/// [en]This class is about getting the audience information. [cn]网络研讨会：获取观众信息
- (HWMSDKShowAudienceSizeInfoModel *)getAudienceSizeInfo;

/// [en]This class is about getting the audience list limit count. [cn]网络研讨会：获取观众列表限制人数
- (NSUInteger)getAudienceListLimit;

/// [en]This class is about the synchronized method for getting the sensitive word information of the conference state. [cn]获取会议中敏感词信息
- (NSArray <HWMSDKSensitiveWordInfoModel *> *)getSensitiveWordInfo;

/// [en]This class is about the synchronized method for getting join status. [cn]获取会前状态
- (HWMJoinStatusType)getJoinStatus;

/// [en]This class is about the synchronized method for getting guest waiting before conf info. [cn]获取来宾会前等待信息
- (HWMSDKGuestWaitingBeforeConfInfoModel *)getGuestWaitingBeforeConfInfo;

/// [en]This class is about the synchronized method for getting audience waiting info. [cn]获取观众等待信息
- (HWMSDKAudienceWaitingInfoModel *)getAudienceWaitingInfo;

/// [en] [cn]获取vmr max duration
- (NSUInteger)getConfVmrMaxDuration;

/// [en]This class is about getting the breakoutSubConfList. [cn]同步获取全量与会者分组信息
- (NSArray <HWMSDKBreakoutSubConfInfoModel *> *)getSubConfListBeforeBreakoutConf;

/// [en]This class is about getting the breakoutConfAttendeeInfo before breakoutconf. [cn]同步获取分组会前成员信息
- (NSArray <HWMSDKBreakoutConfAttendeeInfoModel *> *)getAttendeesListBeforeBreakoutConf;

/// [en]This class is about getting the breakoutAttendeesList. [cn]同步获取分组配置设置信息
- (HWMSDKBreakoutConfBasicSettingModel *)getBreakoutConfSetting;

/// [en]This class is about getting the breakoutAttendeesList support breakoutconf. [cn]同步获取支持分组与会者分组信息
- (NSArray <HWMSDKBreakoutConfAttendeeInfoModel *> *)getAttendeeListSupportBreakoutConf;

/// [en]This class is about getting the breakoutsubconfList in breakoutconf. [cn]同步获分组会中分组信息
- (NSArray <HWMSDKBreakoutSubConfInfoModel *> *)getSubConfListInBreakoutConf;

/// [en]This class is about getting Dynamic PureBreakout Conf info except members info. [cn]同步获取动态分组信息中的非成员信息
- (HWMSDKBasicConfInfoInBreakoutConfModel *)getBreakoutConfInfo;

/// [en]This class is about getting the breakoutAttendeesList for list. [cn]同步获取整合后（会前分组成员 + 在线的分组成员信息）
- (NSArray <HWMSDKBreakoutConfAttendeeInfoModel *> *)getAttendeeListInBreakoutConf;

/// [en]This class is about getting the breakoutAttendeesList. [cn]同步获取动态分组成员信息
- (NSArray <HWMSDKBreakoutConfAttendeeInfoModel *> *)getOnlineAttendeeListInBreakoutConf;

/// [en]This class is about getting the bc conference state [cn]获取分组会议状态
- (HWMBreakoutConfStatus)getBreakoutConfState;

/// [en]This class is about getting the list of all the attendees. [cn]整合获取所有的与会者，包括动态分组信息 +当前会场与会者
- (NSArray <HWMSDKAttendeeInfoModel *> *)getAllAttendeeList;

/// [en]This class is about getting self breakout info. [cn]获取自己的分组信息
- (HWMSDKBreakoutConfAttendeeInfoModel *)getSelfBreakoutConfInfo;

/// [en]Get Recording Capabilities. [cn]获取录制能力
- (HWMSDKRecordAbilityModel *)getRecordAbilityWithType:(HWMRecordType)type;

/// [en]This class is about getting confconnected info. [cn]获取confconnected info
- (HWMSDKConfConnectedInfoModel *)getConfConnectedInfo;

/// [en]This api is about getting server multi info [cn]获取avc多画面信息
- (HWMSDKServerMultiPicInfoModel *)getServerMultiPictureInfo;

/// [en]This class is about getting enable request annotatio. [cn]获取是否开启申请标注功能
- (BOOL)getEnableRequestAnnotation;

/// [en]This class is about getting enable annotator dynamic background. [cn]获取是否启用动态背景标注
- (BOOL)getEnableAnnotatorDynamicBackground;

/// [en] [cn]获取会议状态: 抢共享权限
- (HWMInterruptSharePermission)getInterruptSharePermission;

/// [en] [cn]获取会议状态: 强制视频显示状态
- (HWMOnlyOpenCameraShowState)getOnlyOpenCameraShowState;

/// [en]get confctrl link state [cn]获取会控链路状态
- (BOOL)getConfCtrlState;

/// [en]get view share state [cn]获取本端是否禁止观看共享
- (BOOL)getViewShareState;

/// pc [en]get if forbidden mobile view share [cn]获取是否禁止移动端观看共享
- (BOOL)getForbiddenMobileViewShareState;

/// [en]get support forbidden mobile view share [cn]获取是否支持“禁止移动端观看共享”的能力
- (BOOL)getSupportForbiddenMobileViewShare;

/// [en]get support forbidden screen shots [cn]获取是否支持“禁止截屏”的能力 -- 已废弃
- (BOOL)getSupportForbiddenScreenShots;

/// [en]get support Summary [cn]获取是否支持智能会议纪要的能力
- (BOOL)getSupportSummary;

/// [en]get summary state [cn]获取智能会议纪要状态
- (HWMSummaryState)getSummaryState;

/// [en]This class is about getting the conference state: whether the conference virtual human is dirve. [cn]同声传译：获取会议状态:是否数字人驱动中
- (BOOL)getVirtualHumanDriveState;

/// [en]get intelligent assistant state [cn]语音助手：获取语音助手状态
- (HWMIntelligentAssistantState)getIntelligentAssistantState;

/// [en]get conf is intelligent assistant opened [cn]语音助手：获取语音助手是否开启
- (BOOL)getConfIsIntelligentAssistantOpened;

/// [en]get conf is support intelligent assistant [cn]语音助手：当前会议是否支持语音助手
- (BOOL)getConfIsSupportIntelligentAssistant;

/// [en]get question answer mode [cn]语音助手：获取会中问答模式
- (HWMQuestionAnswerMode)getQuestionAnswerMode;

/// [en]This class is about getting the user's SIM card incoming call status. [cn]通过用户ID获取SIM卡来电状态
- (HWMTelCallStatusType)getVideoCallStatusWithUserId:(NSUInteger)userId;

@end


@interface HWMSDKDeviceMgrService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
- (void)addConfDeviceNotifyCallback:(id<HWMSDKConfDeviceNotify>)callback;
- (void)removeConfDeviceNotifyCallback:(id<HWMSDKConfDeviceNotify>)callback;
/// [en]This api is used to playing the audio files. [cn]开始播放音频文件 :disable
- (NSInteger)startPlayFileWithLoopTimes:(NSUInteger)loopTimes filePath:(NSString *)filePath;

/// [en]This api is used to stop playing audio files. [cn]停止播放音频文件 :disable
- (HWMSDKERR)stopPlayFileWithPlayHandle:(NSInteger)playHandle;

/// [en]This api is about getting the camera list. [cn]获取摄像头设备列表
- (NSArray <HWMSDKCameraDetailInfoModel *> *)getCameraDevices;

/// [en]This api is about getting the max capture capability of using cameras. [cn]获取最大的采集分辨率
- (NSUInteger)getMaxCaptureCapabilityWithIndex:(NSUInteger)index;

/// [en]This api is about getting the microphone list. [cn]获取麦克风设备列表
- (NSArray <HWMSDKMicDetailInfoModel *> *)getMicDevices;

/// [en]This api is used to get the mic device type. [cn]获取麦克风设备类型，仅支持mmr :disable
- (HWMPeripheralSoundDeviceType)getMicrophoneDeviceTypeWithParam:(HWMSDKQueryDeviceTypeParamModel *)param;

/// [en]This api is used to get the speaker device type. [cn]获取扬声器设备类型，仅支持mmr :disable
- (HWMPeripheralSoundDeviceType)getSpeakerDeviceTypeWithParam:(HWMSDKQueryDeviceTypeParamModel *)param;

/// [en]This api is about getting the speaker list. [cn]获取扬声器设备列表
- (NSArray <HWMSDKSpkDetailInfoModel *> *)getSpeakerDevices;

/// [en]This api is about setting the index of using cameras. [cn]设置使用的摄像头设备序号
- (HWMSDKERR)modifyCameraIndex:(NSUInteger)index;

/// [en]This api is about turning on or off the camera. [cn]设置本地摄像头开启或关闭
- (HWMSDKERR)openCamera:(BOOL)isOpen;

/// [en]This api is about front and rear cameras switching. [cn]前后摄像头切换
- (HWMSDKERR)switchCamera;

/// [en]This api is about front and rear cameras switching. [cn]屏幕折叠状态
- (HWMSDKERR)setFoldState:(HWMFoldState)foldState;

/// [en]This api is about setting the camera orientation. [cn]设置摄像头方向
- (HWMSDKERR)modifyCameraOrient:(HWMDeviceOrient)orient;

/// [en]This api is about setting the camera rotation. [cn]设置摄像头角度
- (HWMSDKERR)modifyCameraRotation:(NSUInteger)rotation;

/// [en]This class is used to enable/disable virtual camera [cn]设置本地render的镜像策略
- (HWMSDKERR)setCameraMirrorTypeWithPosition:(HWMCameraPosition)position type:(HWMCameraMirrorType)type;

/// [en]This api is used to get the using camera position. [cn]获取摄像头的使用情况 :GetUsingCameraPosition
- (HWMCameraPosition)getUsingCameraPosition;

/// [en]This class is used to deal with sim call in. [cn]sim来电处理
- (HWMSDKERR)dealSimCallWithPhase:(HWMSimCallPhase)phase;

/// [en]This class is used to enable/disable the input or output of local audio. [cn]开启、关闭音频输入输出
- (HWMSDKERR)enableLocalAudioWithType:(HWMAudioIOType)type enable:(BOOL)enable;

/// [en]This class is used to set audio state. [cn]入会是否断开音频--全局配置
- (HWMSDKERR)setDisconnectAudioConfig:(BOOL)enable;

/// [en]This class is used to set audio state. [cn]设置音频状态
- (HWMSDKERR)setAudioState:(HWMAudioState)state;

/// [en]This class is used to set audio state. [cn]设置音频状态
- (HWMSDKERR)setAudioConnectState:(HWMAudioState)state;

/// [en]This api is about muting the speaker or not. [cn]设置(或取消)扬声器静音
- (HWMSDKERR)muteSpeaker:(BOOL)isMute;

/// [en]This api is about setting the index of using speakers. [cn]设置使用的扬声器设备序号 :disable
- (HWMSDKERR)modifySpeakerIndex:(NSUInteger)index;

/// [en]This api is about setting speaker volume. [cn]设置输出音量大小
- (HWMSDKERR)modifySpeakerVolume:(NSUInteger)volume;

/// [en]This api is about muting the microphone. [cn]设置麦克风静音
- (HWMSDKERR)muteMicrophone:(BOOL)isMute;

/// [en]This api is about setting the index of using microphones. [cn]设置使用的麦克风设备序号
- (HWMSDKERR)modifyMicrophoneIndex:(NSUInteger)index;

/// [en]This api is about setting microphone volume. [cn]设置输入音量
- (HWMSDKERR)modifyMicrophoneVolume:(NSUInteger)volume;

/// [en]This api is uesd to get whether the speaker is mute. [cn]获取扬声器是否系统静音 :disable
- (BOOL)getSpeakerMute;

/// [en]This api is uesd to get whether the microphone is mute. [cn]获取麦克风是否系统静音 :disable
- (BOOL)getMicrophoneMute;

/// [en]This api is about beautifying face. [cn]美颜
- (HWMSDKERR)enableBeauty:(BOOL)enable;

/// [en]This api is about brighten. [cn]暗背景增强
- (HWMSDKERR)enableBrighten:(BOOL)enable;

/// [en]This api is about howling detection(The default setting is turning on the howling detection). [cn]啸叫检测
- (HWMSDKERR)enableHowlingDetection:(BOOL)enable;

/// [en]This api is about howling suppression(The default setting is turning on the howling suppression). [cn]啸叫抑制
- (HWMSDKERR)enableHowlingSuppression:(BOOL)enable;

/// [en]This api is about set if bypass system APOs(The default setting is auto). [cn]设置是否绕过系统的apos
- (HWMSDKERR)setBypassSystemAPOsWithDirection:(NSUInteger)direction audioSwitchStatus:(HWMAudioSwitchStatus)audioSwitchStatus;

/// [en]This api is about set audio 3A model. [cn]设置音频3A模式
- (HWMSDKERR)setAudioVqeModeWithModel:(HWMAudioVqeMode)model;

/// [en]This api is about using other audio devices. [cn]启用其他音频设备(默认设备外的设备)
- (HWMSDKERR)enableOtherAudioDevice:(BOOL)enable;

/// [en]This api is about opening preview. [cn]打开预览
- (HWMSDKERR)openPreviewWithHandle:(NSUInteger)handle cameraIndex:(NSUInteger)cameraIndex;

/// [en]This api is about closing preview. [cn]关闭预览
- (HWMSDKERR)closePreview;

/// [en]This api is used to get the camera state. [cn]获取视频设备状态
- (HWMDeviceStatus)getCameraState;

/// [en]This api is used to get the microphone state. [cn]获取麦克风设备开启状态
- (BOOL)getMicState;

/// [en]This api is used to get the audio connect state. [cn]获取音频连接状态
- (HWMAudioState)getAudioState;

/// [en]This api is used to get the algo ability. [cn]获取虚拟背景能力.
- (HWMAlgoAbility)getAlgoAbility;

/// [en]This api is used to get the Speaker state. [cn]获取扬声器状态
- (BOOL)getSpeakState;

/// [en]This api is used to get extended attributes of video render mode. [cn]获取hme视频渲染模式(opengl, Metal) :disable :disable
- (HWMRenderMode)getVideoRenderMode;

/// [en]get cpu level from config. [cn]根据配置规则获取cpulevel
- (HWMCpuLevel)getCpuLevel;

/// [en]set device Info. [cn]设置设备信息
- (HWMSDKERR)setDeviceInfo:(HWMSDKDeviceInfoForGetCpuModel *)deviceInfo;

/// [en]This api is about enable recv audio frame [cn]启用接收音频流 :disable
- (HWMSDKERR)setAudioRawDataOutputConfig:(BOOL)enable;

/// [en]This api is set "original audio listening" volume [cn]设置“原始音频收听”音量大小
- (void)setOriginAudioVolume:(NSInteger)volume;

/// [en]This api is get "original audio listening" volume [cn]获取“原始音频收听”音量大小
- (NSInteger)getOriginAudioVolume;

/// [en]This api is set "Automatically restore the original audio to 100% when the interpreter is not working" [cn]设置“传译员不工作时自动恢复原始音频至100%”
- (void)setOAVRecover:(BOOL)isRecover;

@end


@protocol HWMSDKConfUsgNotify <NSObject>

@optional
/// [en] [cn]控制器请求的结果回调
- (void)onRecvMsgFromControllerNotify:(NSString *)resultInfo;

@end

@interface HWMSDKConfUsgService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
- (void)addConfUsgNotifyCallback:(id<HWMSDKConfUsgNotify>)callback;
- (void)removeConfUsgNotifyCallback:(id<HWMSDKConfUsgNotify>)callback;
/// [en] [cn]控制器ws请求
- (HWMSDKERR)sendMsgToControllerWithRequestInfo:(NSString *)requestInfo;

@end



NS_ASSUME_NONNULL_END

