/** * GitWand — Résolveur CSS/SCSS/Less * * Résout les conflits dans les fichiers CSS, SCSS et Less en analysant * la structure des règles (sélecteur + bloc de propriétés) et en fusionnant * règle par règle. * * Stratégie : * 1. Parser les trois versions en "règles" CSS : sélecteur + propriétés * 2. Pour chaque règle : * - Absente de base → ajout (accepter) * - Modifiée d'un seul côté → accepter la modification * - Same change → accepter * - Modifiée des deux côtés → tenter une fusion propriété par propriété * - Conflit réel → fallback textuel (null) * 3. Reconnaître aussi les at-rules (@media, @keyframes, @import, etc.) * * Limites : * - Les sélecteurs imbriqués SCSS (`.parent { .child { } }`) ne sont pas * récursivement fusionnés (traités comme blocs opaques) * - Les at-rules avec blocs (@media) : fusion conservative sur le bloc complet * - Les variables CSS (--var: value) et SCSS ($var: value) : traitées comme propriétés */ /** Une règle CSS parsée */ export interface CssRule { /** Sélecteur ou at-rule (ex: `.btn`, `@media (max-width: 768px)`) */ selector: string; /** Propriétés : tableau de lignes brutes entre `{` et `}` */ properties: string[]; /** Lignes brutes constituant la règle complète */ rawLines: string[]; /** Commentaires/blancs précédant la règle */ leadingComments: string[]; /** Type de règle */ kind: "rule" | "at-rule" | "comment" | "blank" | "import"; } /** * Parse un tableau de lignes CSS en règles structurées. */ export declare function parseCssRules(lines: string[]): CssRule[]; /** Résultat du merge CSS */ export interface CssMergeResult { /** Lignes fusionnées (null = conflit non résolvable) */ mergedLines: string[] | null; /** Description de la fusion */ reason: string; /** Règles résolues automatiquement */ resolvedRules: number; /** Règles en conflit */ unresolvedRules: number; } /** * Tente de résoudre un conflit CSS/SCSS en fusionnant règle par règle. * * @param baseLines - Lignes de la version base * @param oursLines - Lignes de la version ours * @param theirsLines - Lignes de la version theirs */ export declare function tryResolveCssConflict(baseLines: string[], oursLines: string[], theirsLines: string[]): CssMergeResult; //# sourceMappingURL=css.d.ts.map