/** * Politique de merge effective + helpers de scoring. * * Regroupe : * - `DEFAULT_OPTIONS` — valeurs par défaut des `GitWandOptions` * - `CONFIDENCE_ORDER` — ordre total sur les labels de confiance * - `computeEffectivePolicy` — résout la politique applicable à un fichier * (glob overrides > politique globale) et sa `PolicyConfig` dérivée * - `computeEffectiveMinConfidence` — seuil de confiance effectif (min entre * option globale et politique, donc le plus permissif des deux) * - `applyFileFrequencyPenalty` — v1.4 « zone chaude » : pénalise la confiance * d'un hunk si le même fichier contient déjà des hunks complexes non résolus * * Extrait de `resolver.ts` lors du split P1.1. */ import type { ConflictHunk, Confidence, GitWandOptions } from "../types.js"; import { type MergePolicy, type PolicyConfig } from "../config.js"; /** Options par défaut. */ export declare const DEFAULT_OPTIONS: Required; /** Ordre de confiance pour comparaison. */ export declare const CONFIDENCE_ORDER: Record; /** * Résout la politique effective pour un fichier donné. * * La priorité est : pattern-override le plus spécifique → politique globale. * Retourne à la fois la politique et sa `PolicyConfig` dérivée, afin de ne * pas recalculer la conversion chez les appelants. */ export declare function computeEffectivePolicy(filePath: string, options: Required): { policy: MergePolicy; cfg: PolicyConfig; }; /** * Calcule le seuil de confiance effectif : le `min` entre la politique et * l'option globale. Motivation : la politique peut abaisser le seuil, et * une option explicite peut aussi l'abaisser en dessous du défaut de la * politique — on prend donc toujours le plus permissif. */ export declare function computeEffectiveMinConfidence(policyCfg: PolicyConfig, options: Required): Confidence; /** * v1.4 — Applique la pénalité « zone chaude » sur la confiance d'un hunk si * `priorComplexHunks > 0` hunks complexes non résolus ont déjà été vus dans * le même fichier. Ne s'applique pas aux hunks `complex` eux-mêmes. * * La formule recalcule `score` à partir des dimensions, avec : * `fileFrequency = min(100, priorComplexHunks × 20)` * `score = typeClassification − 0.40·dataRisk − 0.15·scopeImpact * − 0.10·fileFrequency + 0.05·baseAvailability` * * Les labels sont re-dérivés via les seuils : 92 / 68 / 44. */ export declare function applyFileFrequencyPenalty(hunk: ConflictHunk, priorComplexHunks: number): ConflictHunk; //# sourceMappingURL=policy.d.ts.map