import type { Type_JSON } from './Utils'; export type Type_Origin = { rule: string; sheet?: string; row?: number; trigger?: string; datatags?: string; detail?: string; }; /** Clé i18n du libellé d'une règle. */ export declare const originRuleKey: (rule: string) => string; /** Vrai si l'élément a été déduit par le moteur plutôt que saisi. */ export declare const originIsDeduced: (origin: Type_Origin) => boolean; /** * Numéro de ligne tel qu'il apparaît DANS LE CLASSEUR, ou undefined. * * Les DataFrames sont lus sans argument `header`, donc la ligne 1 de l'onglet * est consommée comme en-tête et l'index 0 correspond à la ligne 2. Même * conversion que `Origin.excel_row` côté Python — les deux doivent bouger * ensemble si la convention de lecture change. */ export declare const originExcelLine: (origin: Type_Origin) => number | undefined; /** Lit un enregistrement d'origine depuis le JSON, ou undefined si inutilisable. */ export declare const originFromJSON: (raw: unknown) => Type_Origin | undefined; /** * Forme JSON, membres vides omis (symétrique de `Origin.to_dict`). * * Typé `Type_JSON` et non `Record` : le résultat est écrit * directement dans la structure de persistance, dont la grammaire n'admet que * des valeurs scalaires ou imbriquées. */ export declare const originToJSON: (origin: Type_Origin) => Type_JSON; /** Un maillon de la chaîne causale présentée à l'utilisateur. */ export type Type_OriginChainLink = { element: string; origin: Type_Origin; unresolved?: boolean; }; /** * Déroule la chaîne « créé à cause de » en partant d'un élément. * * `lookup` rend l'origine d'un élément désigné par sa clé de déclencheur. La * remontée s'arrête sur une saisie, sur un déclencheur introuvable, ou sur un * cycle — un point fixe du moteur peut faire qu'un élément soit à la fois cause * et conséquence, et une boucle infinie figerait l'interface. */ export declare const walkOriginChain: (origin: Type_Origin, lookup: (key: string) => Type_Origin | undefined, max_depth?: number) => Type_OriginChainLink[];