export interface PlayableAssetAnalysis {
    name: string;
    type: string;
    category: string;
    size: number;
    sizeFormatted: string;
    percentage: number;
}
export interface PlayableAnalysisReport {
    htmlPath: string;
    totalSize: number;
    totalSizeFormatted: string;
    assets: PlayableAssetAnalysis[];
    byCategory: Record<string, {
        count: number;
        size: number;
        sizeFormatted: string;
        percentage: number;
    }>;
    byType: Record<string, {
        count: number;
        size: number;
        sizeFormatted: string;
        percentage: number;
    }>;
    optimizationInfo?: {
        baseBuildSize?: number;
        baseBuildSizeFormatted?: string;
        optimizationRate?: number;
    };
}
/**
 * Playable 分析器 - 分析最终打包后的单 HTML 文件
 *
 * 职责：
 * 1. 解析单 HTML 文件中的所有内联资源
 * 2. 提取 data URL 并计算实际大小
 * 3. 生成准确的资源分布报告
 */
export declare class PlayableAnalyzer {
    private htmlPath;
    private outputDir;
    private baseBuildReportPath?;
    constructor(htmlPath: string, outputDir?: string, baseBuildReportPath?: string);
    /**
     * 分析 Playable HTML 文件
     *
     * 策略：
     * 1. 优先尝试从 build-state.json 读取资源信息（更准确）
     * 2. 如果没有 state 文件，则从 HTML 中提取资源（fallback）
     */
    analyze(): Promise<PlayableAnalysisReport>;
    /**
     * 提取 HTML 中的所有资源
     *
     * 注意：不要重复计算！
     * - script/style 标签的大小已经包含了其中的 data URL
     * - 所以我们只统计标签本身，不单独提取 data URL
     */
    private extractAssets;
    /**
     * 从 build-state.json 提取资源信息
     *
     * 这个方法使用打包过程中记录的真实资源信息，比从 HTML 中提取更准确
     */
    private extractAssetsFromState;
    /**
     * 根据 MIME 类型获取文件信息
     */
    private getMimeTypeInfo;
    /**
     * 生成 HTML 报告
     *
     * 策略：
     * 1. 如果提供了 baseBuildReportPath，则复用 Base Build 的 HTML 模板，只替换数据
     * 2. 否则，使用统一的模板生成新的 HTML
     */
    generateHTMLReport(report: PlayableAnalysisReport): Promise<string>;
    /**
     * 格式化文件大小
     */
    private formatSize;
    /**
     * 生成树状图数据结构
     */
    private generateTreemapData;
    /**
     * 生成 HTML 报告内容
     */
    private generateReportHTML;
}
