import type { BuildOptions, SizeReport } from './types.js';
export interface PlayableBuildOutput {
    outputPath: string;
    size: number;
    sizeLimit: number;
    valid: boolean;
}
/**
 * Playable Ads 打包器 - 将多文件版本转换为单HTML
 *
 * 职责：
 * 1. 读取阶段1的多文件构建产物
 * 2. 将所有文件内联到单个HTML
 * 3. 应用渠道特定配置和限制
 * 4. 优化文件大小
 */
export declare class PlayableBuilder {
    private baseBuildDir;
    private options;
    private platformAdapter;
    private sizeReport;
    constructor(baseBuildDir: string, options: BuildOptions);
    /**
     * 执行打包
     */
    build(): Promise<string>;
    /**
     * 验证基础构建
     */
    private validateBaseBuild;
    /**
     * 转换为单HTML
     */
    private convertToSingleHTML;
    /**
     * 内联 CSS 文件
     */
    private inlineCSS;
    /**
     * 内联 manifest.json
     */
    private inlineManifest;
    /**
     * 内联 PlayCanvas Engine
     */
    private inlineEngine;
    /**
     * 内联 __settings__.js 并转换资源URL
     */
    private inlineSettings;
    /**
     * 生成并内联 settings（如果 __settings__.js 不存在）
     */
    private generateAndInlineSettings;
    /**
     * 转换 CONFIG_FILENAME 为 data URL
     */
    private convertConfigFilename;
    /**
     * 转换 SCENE_PATH 为 data URL
     */
    private convertScenePath;
    /**
     * 转换 PRELOAD_MODULES 中的资源URL
     * 对于 Playable Ads，优先使用 fallback JS 版本（跳过 WASM）
     */
    private convertPreloadModules;
    /**
     * 从 config.json 提取 PRELOAD_MODULES
     */
    private extractPreloadModules;
    private stripAmmoAssets;
    private injectPhysicsLibrary;
    private injectScenePhysicsPatch;
    private isAmmoModule;
    private readPatchFile;
    /**
     * 内联 __modules__.js
     */
    private inlineModules;
    /**
     * 内联 __game-scripts.js
     * 游戏脚本需要在内联到HTML中，以便PlayCanvas可以加载它们
     */
    private inlineGameScripts;
    /**
     * 内联 __start__.js
     */
    private inlineStart;
    /**
     * 内联 __loading__.js
     */
    private inlineLoading;
    /**
     * 获取大小报告
     */
    getSizeReport(): SizeReport;
}
