#import <Foundation/Foundation.h>
#if __has_include(<TencentQianWebView/TQPrewarmEnvironment.h>)
#import <TencentQianWebView/TQPrewarmEnvironment.h>
#else
#import "TQPrewarmEnvironment.h"
#endif

NS_ASSUME_NONNULL_BEGIN

/// 预热全局配置（三端字段对齐）。全部字段带默认值。
@interface TQPrewarmConfig : NSObject <NSCopying>

/// 目标环境，默认 `TQPrewarmEnvironmentProd`。
@property (nonatomic, assign) TQPrewarmEnvironment environment;

/// 显式 manifest URL 覆盖（私有部署 / 特殊场景逃生舱）；`nil` 时按 environment 走内置映射。
@property (nonatomic, copy, nullable) NSString *manifestUrl;

/// 池容量。有效值恒为 1；> 1 会被 clamp 到 1 并 log 警告（参数保留以便后续扩展）。
@property (nonatomic, assign) NSInteger poolSize;

/// 是否启用 WebView 复用池。
@property (nonatomic, assign) BOOL enablePool;

/// 预热语言偏好（如 `@"en-US"` / `@"zh-CN"`）。客户显式指定要预热的语言资源；`nil` 时交由
/// `warmup.html` 自动判定。iOS 走 L4：非空时以 `&lang=` 传入 `warmupUrl`（在 warmup.html 内优先级最高）。
@property (nonatomic, copy, nullable) NSString *preferredLanguage;

/// 是否注入 SDK UA 标识（`qianwv/<version>`，与 `TQWebViewConfig` 对齐），默认 `YES`。
/// 池实例按本字段创建 `applicationNameForUserAgent` 并热身 `warmupUrl`，
/// 保证与 `open()` 的 config UA 一致才能命中缓存并被复用。
@property (nonatomic, assign) BOOL injectUserAgent;

/// 客户附加 UA 段，拼接在 `qianwv/x.x.x` 之后（与 `TQWebViewConfig` 对齐），默认 `@""`。
/// 与 `open()` 的 config UA 一致时池实例才会被复用。
@property (nonatomic, copy) NSString *userAgentExtra;

/// 默认配置（全部默认值）。
+ (instancetype)defaultConfig;

@end

NS_ASSUME_NONNULL_END
