/**
 * 构建状态版本
 */
export declare const BUILD_STATE_VERSION = "1.0.0";
/**
 * 资源类型
 */
export type AssetType = 'texture' | 'audio' | 'model' | 'script' | 'json' | 'css' | 'html' | 'font' | 'binary' | 'other';
/**
 * 处理阶段
 */
export type ProcessingStage = 'original' | 'base-build' | 'playable' | 'inlined';
/**
 * 优化类型
 */
export type OptimizationType = 'minify' | 'image-compress' | 'format-convert' | 'tree-shake' | 'code-split' | 'inline' | 'unused' | 'none';
/**
 * 资源处理信息
 */
export interface AssetProcessingInfo {
    /** 处理阶段 */
    stage: ProcessingStage;
    /** 处理后的名称 */
    name: string;
    /** 处理后的路径（相对于构建目录） */
    path: string;
    /** 处理后的大小（字节） */
    size: number;
    /** 应用的优化类型 */
    optimizations: OptimizationType[];
    /** 压缩率（0-1，如果有压缩） */
    compressionRatio?: number;
    /** 是否内联 */
    inlined: boolean;
    /** 内联位置（如果内联） */
    inlineLocation?: string;
    /** 处理时间戳 */
    timestamp: number;
}
/**
 * 资源状态信息
 */
export interface AssetState {
    /** 资源 ID（唯一标识） */
    id: string;
    /** 原始名称 */
    originalName: string;
    /** 原始路径 */
    originalPath: string;
    /** 原始大小（字节） */
    originalSize: number;
    /** 资源类型 */
    type: AssetType;
    /** 处理历史（按时间顺序） */
    processingHistory: AssetProcessingInfo[];
    /** 最终大小 */
    finalSize: number;
    /** 总压缩率 */
    totalCompressionRatio: number;
    /** 元数据（可选的额外信息） */
    metadata?: Record<string, any>;
}
/**
 * 构建阶段信息
 */
export interface BuildStageInfo {
    /** 阶段名称 */
    stage: 'base-build' | 'playable';
    /** 开始时间 */
    startTime: number;
    /** 结束时间 */
    endTime?: number;
    /** 输出目录 */
    outputDir: string;
    /** 构建选项 */
    options: Record<string, any>;
}
/**
 * 构建状态
 */
export interface BuildState {
    /** 版本号 */
    version: string;
    /** 项目目录 */
    projectDir: string;
    /** 构建阶段信息 */
    stages: BuildStageInfo[];
    /** 资源状态映射（key 为资源 ID） */
    assets: Record<string, AssetState>;
    /** 创建时间 */
    createdAt: number;
    /** 最后更新时间 */
    updatedAt: number;
}
/**
 * 构建状态管理器
 * 负责记录和管理构建过程中的资源处理信息
 */
export declare class BuildStateManager {
    private state;
    private outputDir;
    private stateFilePath;
    constructor(projectDir: string, outputDir: string);
    /**
     * 静态方法：从输出目录加载 build-state.json，返回管理器或 null
     */
    static load(outputDir: string): Promise<BuildStateManager | null>;
    /**
     * 从文件加载状态
     */
    loadState(): Promise<boolean>;
    /**
     * 保存状态到文件
     */
    saveState(): Promise<void>;
    /**
     * 开始构建阶段
     */
    startStage(stage: 'base-build' | 'playable', options?: Record<string, any>): void;
    /**
     * 结束构建阶段
     */
    endStage(): void;
    /**
     * 记录资源
     */
    recordAsset(id: string, originalName: string, originalPath: string, originalSize: number, type: AssetType, metadata?: Record<string, any>): void;
    /**
     * 更新资源处理信息
     */
    updateAsset(id: string, stage: ProcessingStage, name: string, assetPath: string, size: number, options?: {
        optimizations?: OptimizationType[];
        inlined?: boolean;
        inlineLocation?: string;
        metadata?: Record<string, any>;
    }): void;
    /**
     * 获取资源状态
     */
    getAsset(id: string): AssetState | undefined;
    /**
     * 获取所有资源
     */
    getAllAssets(): AssetState[];
    /**
     * 获取按类型分组的资源
     */
    getAssetsByType(): Record<AssetType, AssetState[]>;
    /**
     * 获取构建状态
     */
    getState(): BuildState;
    /**
     * 获取统计信息
     */
    getStatistics(): {
        totalAssets: number;
        totalOriginalSize: number;
        totalFinalSize: number;
        totalCompressionRatio: number;
        byType: Record<string, {
            count: number;
            originalSize: number;
            finalSize: number;
        }>;
    };
    /**
     * 验证状态数据的完整性
     */
    validate(): {
        valid: boolean;
        errors: string[];
    };
}
