/** * v2.6 — Pattern refactoring-aware-merge (priority 25, expérimental, opt-in). * * Détecte les conflits causés par des refactorings concurrents (renommages, * déplacements de méthode) et délègue la résolution au pipeline RefMerge. * * ## Position dans la hiérarchie * * Priority 25 — après les patterns trivials (1–10) mais avant les patterns * heuristiques (whitespace: 5, value_only: 8, non_overlapping: 4). En pratique, * ce pattern n'est évalué que sur les hunks qui ont déjà résisté aux patterns * plus simples, car ceux-ci ont une priorité inférieure (numéro plus petit). * * Attendez — la convention est : **plus petit = évalué en premier**. Donc 25 * signifie évalué AVANT whitespace_only (5) ? Non — whitespace (5) est évalué * avant RefMerge (25). Les patterns à faible numéro sont prioritaires. * * RefMerge à priority 25 est évalué : * - APRÈS non_overlapping (4), whitespace_only (5), reorder_only (6), * insertion_at_boundary (7), value_only_change (8) * - AVANT complex (999) et llm_proposed (998) * * C'est intentionnel : on ne tente RefMerge que si les patterns textuels simples * n'ont pas suffi, car RefMerge est plus coûteux (tokenisation + détection). * * ## Activation * * Ce pattern est désactivé par défaut. Il s'active via `setRefMergeEnabled(true)` * appelé par `resolve()` quand `options.refactoringAware.enabled === true`. * Le flag est réinitialisé après chaque appel à `resolve()`. * * ## Résolution * * `detect()` exécute le pipeline RefMerge complet et cache le résultat dans * `_lastResult`. Si le pipeline réussit (`lines !== null`), detect retourne `true` * et `assembleResolution()` peut récupérer les lignes via `getLastRefMergeResult()`. */ import type { PatternPlugin } from "../types.js"; import type { RefMergeResult } from "../refactoring/orchestration.js"; /** Active ou désactive le pattern RefMerge pour la prochaine résolution. */ export declare function setRefMergeEnabled(enabled: boolean, max?: number): void; /** Retourne l'état d'activation courant (utile pour les tests). */ export declare function isRefMergeEnabled(): boolean; /** * Retourne le dernier résultat RefMerge mis en cache par `detect()`. * Appelé par `assembleResolution()` pour récupérer les lignes sans recalcul. * Retourne `null` si `detect()` n'a pas encore été appelé ou si le résultat a été reset. */ export declare function getLastRefMergeResult(): RefMergeResult | null; declare const refactoringAwareMerge: PatternPlugin; export default refactoringAwareMerge; //# sourceMappingURL=refactoring-aware-merge.d.ts.map