/** * GitWand v2.6 — Inversion de refactorings (expérimental) * * Inverse les refactorings détectés par `detect.ts` pour ramener une branche * à la nomenclature de la version de base avant la résolution textuelle. * * ## Rôle dans le pipeline RefMerge * * ``` * base ──────────────────────────────────────────────────────┐ * ↘ (refactorings ours) │ * ours ──→ invertRefactorings(ours, refs_ours) ──→ ours' ├─→ merge textuel → merged' * ↘ (refactorings theirs) │ * theirs → invertRefactorings(theirs, refs_theirs) → theirs' ┘ * ``` * * Après inversion, `ours'` et `theirs'` utilisent la même nomenclature que * `base`, ce qui rend le merge textuel robuste aux conflits de renommage. * * ## Algorithme * * Pour chaque `Refactoring` dans la liste : * - `rename-local` : remplacer `newName` → `oldName` dans la portée (`scope`) * - `rename-top-level` : remplacer `newName` → `oldName` dans tout le fichier * - `move-method` : aucune inversion textuelle possible à ce stade * (la méthode est déjà dans la classe cible — on laisse) * * ## Garanties * - Retourne les lignes inchangées si la liste de refactorings est vide. * - Retourne les lignes inchangées en cas d'erreur (safe by default). * - Zéro import Node.js — compatible browser, Node.js, Tauri WebView. */ import type { Refactoring } from "../types.js"; /** * Inverse une liste de refactorings dans les lignes d'une branche. * * Applique les inversions dans l'ordre inverse de la liste (le dernier * refactoring détecté est inversé en premier) pour gérer correctement * les chaînes de renommage. * * @param branchLines - Lignes de la branche (ours ou theirs) à inverser * @param refactorings - Liste des refactorings détectés sur cette branche * @returns Lignes avec les refactorings inversés, prêtes pour le merge textuel * * @example * ```ts * const refs = detectRefactorings(baseLines, oursLines); * const oursInverted = invertRefactorings(oursLines, refs); * // oursInverted utilise maintenant la nomenclature de base * ``` */ export declare function invertRefactorings(branchLines: string[], refactorings: Refactoring[]): string[]; //# sourceMappingURL=invert.d.ts.map