//
//  RTCXMsgTransportProtocol.h
//  RTCXAppExpress
//
//  Created by Apple on 2025/12/11.
//

#import <Foundation/Foundation.h>

typedef void (^RTCXTransportCallback)(id _Nullable data);
NS_ASSUME_NONNULL_BEGIN

@protocol RTCXMsgTransportProtocol <NSObject>
/**
 订阅传输消息
 */
- (void)subscribeClientTransportMessage:(RTCXTransportCallback)callback;
/**
 取消订阅传输消息
 */
- (void)unsubscribeClientTransportMessage:(RTCXTransportCallback)callback;

/**
 订阅音视频通话通道连接状态消息
 */
- (void)subscribeAudioVideoTalkChannelStatusMessage:(RTCXTransportCallback)callback;
/**
 取消订阅音视频通话通道连接状态消息
 */
- (void)unsubscribeAudioVideoTalkChannelStatusMessage:(RTCXTransportCallback)callback;
/**
 订阅对讲无数据消息
 */
- (void)subscribeNoTalkDataMessage:(RTCXTransportCallback)callback;
/**
 取消订阅对讲无数据消息
 */
- (void)unsubscribeNoTalkDataMessage:(RTCXTransportCallback)callback;
/**
 订阅视频编码切换通知消息，如：H264/H265切换
 */
- (void)subscribeVideoCodecChangedMessage:(RTCXTransportCallback)callback;
/**
 取消订阅视频编码切换通知消息
 */
- (void)unsubscribeVideoCodecChangedMessage:(RTCXTransportCallback)callback;
/**
 订阅事件批量通知消息
 */
- (void)subscribeEventBatchNotifyMessage:(RTCXTransportCallback)callback;
/**
 取消订阅事件批量通知消息
 */
- (void)unsubscribeEventBatchNotifyMessage:(RTCXTransportCallback)callback;
@end

NS_ASSUME_NONNULL_END
