import { BundleAnalysis, DependencyInfo } from './types';
interface PackageSize {
    name: string;
    size: {
        raw: number;
        gzip: number;
        formatted: {
            raw: string;
            gzip: string;
        };
    };
    treeshakeable: boolean;
    sideEffects: boolean;
}
export declare class BundleAnalyzer {
    private cache;
    private cacheTimeout;
    private requestTimeout;
    constructor(cacheTimeout?: number, requestTimeout?: number);
    analyzeBundleSize(dependencies: Map<string, DependencyInfo>): Promise<BundleAnalysis>;
    getPackageSize(packageName: string, version?: string): Promise<PackageSize>;
    private fetchFromNpmRegistry;
    private formatPackageSize;
    estimateProjectBundleSize(dependencies: Map<string, DependencyInfo>): Promise<{
        estimated: {
            raw: number;
            gzip: number;
        };
        breakdown: Array<{
            name: string;
            size: {
                raw: number;
                gzip: number;
            };
            percentage: number;
        }>;
    }>;
    comparePackageSizes(packages: string[]): Promise<Array<{
        name: string;
        size: {
            raw: number;
            gzip: number;
        };
        formatted: {
            raw: string;
            gzip: string;
        };
        treeshakeable: boolean;
        sideEffects: boolean;
    }>>;
    getSizeDifference(currentSize: number, newSize: number): {
        absolute: number;
        percentage: number;
        formatted: string;
    };
    identifyHeavyPackages(dependencies: Map<string, DependencyInfo>, threshold?: number): Promise<string[]>;
    generateSizeReport(analysis: BundleAnalysis): string;
    private parseVersion;
    private formatSize;
    private estimateBundleSize;
    private parsePackageAlias;
    private delay;
    clearCache(): void;
    getCacheStats(): {
        size: number;
        entries: string[];
    };
}
export {};
//# sourceMappingURL=bundle-analyzer.d.ts.map