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

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

#import "HWMSDKPrivateLoginService.h"
#import "HWMSDKPrivateConfService.h"
#import "HWMSDKPrivateNetworkService.h"
#import "HWMSDKPrivateUtilsService.h"
#import "HWMSDKPrivateConfServiceShare.h"
#import "HWMSDKPrivateConfServiceArAssist.h"
#import "HWMSDKPrivateSecurecAudio.h"


NS_ASSUME_NONNULL_BEGIN


@protocol HWMSDKPrivateJson <NSObject>

@optional
- (void)notifyMsgFunPtr:(NSInteger)cmd msg:(NSString *)msg;

@end

@interface HWMSDKHwmPrivateNativeSDKService : NSObject

+ (instancetype)shareInstance;
+ (void)releaseInstance;
/// [en] This interface is used to initialize SDK. [cn] 初始化SDK-ios，mac, win(私有)
+ (HWMSDKERR)initPrivateWithAppInfoParam:(HWMSDKAppInfoParamPrivateModel *)appInfoParam;

/// [en] This interface is used to set log parameter [cn] 设置日志参数
+ (HWMSDKERR)setLogWithLogInfo:(HWMSDKLogParamModel *)logInfo;

/// [en] This interface is used to get the log service object. [cn] 获取登录服务对象
+ (HWMSDKPrivateLoginService *)getPrivateLoginApi;

/// [en] This interface is used to get the conference management object. [cn] 获取会议管理对象
+ (HWMSDKPrivateConfMgrService *)getPrivateConfMgrApi;

/// [en] This interface is used to get the device management object. [cn] 获取设备管理对象
+ (HWMSDKPrivateDeviceMgrService *)getPrivateDeviceMgrApi;

/// [en] This interface is used to get the meeting state object. [cn] 获取会议状态对象
+ (HWMSDKPrivateConfStateService *)getPrivateConfStateApi;

/// [en] This interface is used to get the conference control object. [cn] 获取会议控制对象
+ (HWMSDKPrivateConfCtrlService *)getPrivateConfCtrlApi;

/// [en] This interface is used to get the conference state object. [cn] 获取会议状态对象
+ (HWMSDKPrivateConfShareService *)getPrivateConfShareApi;

/// [en] This interface is used to get the network service object. [cn] 获取网络服务对象
+ (HWMSDKPrivateNetworkService *)getPrivateNetworkApi;

/// [en] This interface is used to get the conference AR assist object. [cn] 获取会议AR协作对象
+ (HWMSDKPrivateConfArAssistService *)getPrivateConfArAssistApi;

- (void)addPrivateJsonCallbackWithFunc:(id<HWMSDKPrivateJson>)func;
- (void)removePrivateJsonCallbackWithFunc:(id<HWMSDKPrivateJson>)func;
/// [en] This interface is used to send json messages. [cn] 发送json消息
+ (HWMSDKERR)sendPrivateJsonMsgWithCmd:(NSInteger)cmd msg:(NSString *)msg;

/// [en] This interface is used to get the common utilities service object. [cn] 获取公用程序服务对象
+ (HWMSDKPrivateUtilsService *)getPrivateUtilsApi;

/// [en] This interface is used to get the securec audio object. [cn] 获取公用程序服务对象
+ (HWMSDKPrivateSecurecAudioMgrService *)getPrivateSecurecAudioMgr;

/// [en] has support call. [cn] 是否保留call能力
+ (BOOL)needKeepCall;

@end



NS_ASSUME_NONNULL_END

