/**
 * Update Recommender
 *
 * Generates recommendations for handling discrepancies and creates update patches.
 *
 * @module core/discrepancy/update-recommender
 */
import { Logger } from '../../utils/logger.js';
import { Discrepancy, DiscrepancyRecommendation } from './detector.js';
/**
 * An update patch for a spec file.
 */
export interface UpdatePatch {
    filePath: string;
    lineNumber: number;
    originalText: string;
    newText: string;
    reason: string;
}
/**
 * Recommendation with optional patch.
 */
export interface RecommendationResult {
    discrepancyId: string;
    recommendation: DiscrepancyRecommendation;
    patch?: UpdatePatch;
    explanation: string;
    riskLevel: 'low' | 'medium' | 'high';
}
/**
 * Configuration for the update recommender.
 */
export interface UpdateRecommenderConfig {
    /** Auto-update trivial changes */
    autoUpdateTrivial?: boolean;
    /** Generate patches for review-required changes */
    generatePatches?: boolean;
}
/**
 * Generates recommendations for handling discrepancies.
 */
export declare class UpdateRecommender {
    private readonly logger;
    private readonly config;
    constructor(options?: {
        logger?: Logger;
        config?: UpdateRecommenderConfig;
    });
    /**
     * Generate recommendations for a list of discrepancies.
     */
    recommendAll(discrepancies: Discrepancy[]): RecommendationResult[];
    /**
     * Generate a recommendation for a single discrepancy.
     */
    recommend(discrepancy: Discrepancy): RecommendationResult;
    /**
     * Generate an update patch for a discrepancy.
     */
    generatePatch(discrepancy: Discrepancy): UpdatePatch | undefined;
    private mapSeverityToRecommendation;
    private generateExplanation;
    private assessRisk;
    private shouldGeneratePatch;
    private generateApiRoutePatch;
    private generateFunctionPatch;
    private generateTypePatch;
    private generateApiDocSection;
    private generateFunctionDocSection;
    private generateTypeDocSection;
    /**
     * Generate a summary report of recommendations.
     */
    generateReport(recommendations: RecommendationResult[]): string;
    private groupBy;
}
//# sourceMappingURL=update-recommender.d.ts.map