/** * GitWand — Algorithme LCS (Longest Common Subsequence) * * Stratégie hybride DP plein (Int32Array) ↔ Hirschberg (mémoire O(min(n,m))), * équivalente en sortie observable. C'est le **backend legacy** depuis v2.1 : * la fonction publique `lcs()` réside dans `./index.ts` et route vers * `histogramDiff` par défaut. `GITWAND_DIFF=lcs` rebascule sur ce module pour * rollback ou comparaison. */ /** * Calcule la Longest Common Subsequence entre deux tableaux de lignes. * Retourne les indices des lignes communes dans chaque tableau. * * Stratégie hybride : * - petit/moyen (n*m ≤ 4M cellules) → DP plein O(n*m) avec `Int32Array` * (4 octets/cellule vs 8-16 octets pour des `number[][]`) ; * - gros → Hirschberg récursif, mémoire O(min(n,m)) + O(log n) de pile. * * Le comportement observable (tie-break, pairs retournées) est identique entre * les deux branches — voir `src/__tests__/diff.test.ts`. * * **Note v2.1** : exporté sous le nom `lcsLegacy` pour disambiguer du wrapper * public `lcs` (qui route vers Histogram par défaut). L'algo lui-même n'a pas * changé. */ export declare function lcsLegacy(a: string[], b: string[]): Array<[number, number]>; /** * Implémentation Hirschberg exposée pour les tests (et usage avancé éventuel). * L'API publique `lcs()` choisit automatiquement entre cette variante et le DP * plein selon la taille de l'input. Exporter sous le préfixe `_` signale son * caractère d'interne-testable. */ export declare const _lcsHirschberg: (a: string[], b: string[]) => Array<[number, number]>; //# sourceMappingURL=lcs.d.ts.map