import { DetectedFramework } from './frameworkDetector';
export interface BreakingChange {
    id: string;
    category: 'api' | 'syntax' | 'structure' | 'dependency' | 'config' | 'behavior';
    severity: 'low' | 'medium' | 'high' | 'critical';
    description: string;
    affectedFiles?: string[];
    searchPattern?: RegExp;
    replacement?: string;
    migrationGuide?: string;
    automatable: boolean;
    effort: 'trivial' | 'small' | 'medium' | 'large';
}
export interface BreakingChangePattern {
    from: FrameworkVersion;
    to: FrameworkVersion;
    changes: BreakingChange[];
}
export interface FrameworkVersion {
    framework: string;
    minVersion?: string;
    maxVersion?: string;
}
export interface BreakingChangeAnalysis {
    source: DetectedFramework;
    target: DetectedFramework;
    breakingChanges: BreakingChange[];
    totalEffort: {
        trivial: number;
        small: number;
        medium: number;
        large: number;
    };
    criticalCount: number;
    automatableCount: number;
    estimatedHours: number;
}
export declare class BreakingChangeAnalyzer {
    private patterns;
    constructor();
    private initializePatterns;
    analyzeBreakingChanges(source: DetectedFramework, target: DetectedFramework): Promise<BreakingChangeAnalysis>;
    private matchesFramework;
    private compareVersions;
    getBreakingChangesForFramework(framework: string): BreakingChangePattern[];
    generateMigrationScript(changes: BreakingChange[]): string;
}
//# sourceMappingURL=breakingChangeAnalyzer.d.ts.map