import type { BuildOptions, AssetInfo } from '../types.js';
export declare abstract class PlatformAdapter {
    protected options: BuildOptions;
    constructor(options: BuildOptions);
    /**
     * 获取平台名称
     */
    abstract getName(): string;
    /**
     * 获取大小限制（字节）
     */
    abstract getSizeLimit(): number;
    /**
     * 获取默认格式
     */
    abstract getDefaultFormat(): 'html' | 'zip';
    /**
     * 应用平台特定的 HTML 修改（异步版本，带脚本压缩）
     */
    abstract modifyHTML(html: string, assets: AssetInfo[]): Promise<string>;
    /**
     * 获取平台特定的 JavaScript 代码（原始代码，用于压缩）
     */
    abstract getPlatformScript(): string;
    /**
     * 验证配置
     */
    validateOptions(): void;
    /**
     * 读取模板文件
     */
    protected readTemplateFile(filename: string): Promise<string>;
    /**
     * 压缩平台脚本代码
     * @param scriptCode - 原始 JavaScript 代码
     * @param cacheKey - 缓存键（通常是平台名称）
     * @returns 压缩后的 <script> 标签
     */
    protected minifyPlatformScript(scriptCode: string, cacheKey?: string): Promise<string>;
    /**
     * 获取 CTA 适配器脚本（异步版本，带压缩）
     */
    protected getCTAAdapterScriptAsync(): Promise<string>;
    /**
     * 生成 Store URLs 注入脚本
     * 将 storeUrls 以全局变量写入 HTML，供 CTA 适配器读取
     */
    protected getStoreUrlsScript(): string;
    /**
     * 获取 CTA 适配器脚本（同步版本，使用预压缩代码）
     * @deprecated 推荐使用 getCTAAdapterScriptAsync
     */
    protected getCTAAdapterScript(): string;
    /**
     * 在 HTML 中注入 CTA 适配器（异步版本）
     */
    protected injectCTAAdapterAsync(html: string): Promise<string>;
    /**
     * 在 HTML 中注入 CTA 适配器（同步版本）
     * @deprecated 推荐使用 injectCTAAdapterAsync
     */
    protected injectCTAAdapter(html: string): string;
    /**
     * 生成 Tracking 配置注入脚本
     * 将 tracking 配置以全局变量写入 HTML，供 Tracking Adapter 读取
     */
    protected getTrackingConfigScript(): string;
    /**
     * 获取 Tracking 适配器脚本（异步版本，带压缩）
     */
    protected getTrackingAdapterScriptAsync(): Promise<string>;
    /**
     * 从 @playcraft/ads-tracking 包中提取 tracking 实现代码
     * 读取 IIFE 版本，剥掉最外层的自执行箭头函数包装，
     * 重新包裹为独立 IIFE 并通过 window.PlayCraftTracking 暴露。
     */
    protected getAdsdkTrackingScriptAsync(): Promise<string>;
    /**
     * 在 HTML 中注入 Tracking 适配器（异步版本）
     * 注入顺序：1.Config → 2.ads-tracking 实现 → 3.Adapter 桥接脚本
     */
    protected injectTrackingAdapterAsync(html: string): Promise<string>;
}
