#import <Foundation/Foundation.h>
#import <TTSDKFramework/TTSDKFramework.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * 多观察者管理器 - 用于同时支持多个 TTVideoEngineResolutionDelegate
 * 解决不同组件同时需要接收回调的问题
 */
@interface PlayerMultiObserver : NSObject <TTVideoEngineResolutionDelegate>

// 移除单例接口
// + (instancetype)sharedInstance;
// + (instancetype)getInstance;

// 新增带播放器的初始化方法声明
- (instancetype)initWithPlayer:(TTVideoEngine *)player;

/**
 * 设置播放器的观察者为此 MultiObserver
 * @param player 播放器实例
 */
- (void)setupPlayer:(TTVideoEngine *)player;

/**
 * 添加一个观察者到代理列表
 * @param observerId 观察者ID，相同ID会覆盖之前的观察者
 * @param observer 观察者对象
 */
- (void)addObserver:(NSString *)observerId observer:(id<TTVideoEngineResolutionDelegate>)observer;

/**
 * 从代理列表中移除观察者
 * @param observerId 观察者ID
 */
- (void)removeObserver:(NSString *)observerId;

/**
 * 获取当前所有注册的观察者
 * @return 观察者数组
 */
- (NSArray *)getObservers;

/**
 * 清除所有观察者
 */
- (void)clearObservers;

@end

NS_ASSUME_NONNULL_END
