import { NodeRepository } from '../database/node-repository';
export interface DetectedChange {
    propertyName: string;
    changeType: 'added' | 'removed' | 'renamed' | 'type_changed' | 'requirement_changed' | 'default_changed';
    isBreaking: boolean;
    oldValue?: any;
    newValue?: any;
    migrationHint: string;
    autoMigratable: boolean;
    migrationStrategy?: any;
    severity: 'LOW' | 'MEDIUM' | 'HIGH';
    source: 'registry' | 'dynamic';
}
export interface VersionUpgradeAnalysis {
    nodeType: string;
    fromVersion: string;
    toVersion: string;
    hasBreakingChanges: boolean;
    changes: DetectedChange[];
    autoMigratableCount: number;
    manualRequiredCount: number;
    overallSeverity: 'LOW' | 'MEDIUM' | 'HIGH';
    recommendations: string[];
}
export declare class BreakingChangeDetector {
    private nodeRepository;
    constructor(nodeRepository: NodeRepository);
    analyzeVersionUpgrade(nodeType: string, fromVersion: string, toVersion: string): Promise<VersionUpgradeAnalysis>;
    private getRegistryChanges;
    private detectDynamicChanges;
    private flattenProperties;
    private mergeChanges;
    private calculateOverallSeverity;
    private generateRecommendations;
    hasBreakingChanges(nodeType: string, fromVersion: string, toVersion: string): boolean;
    getChangedProperties(nodeType: string, fromVersion: string, toVersion: string): string[];
}
//# sourceMappingURL=breaking-change-detector.d.ts.map