/** Un jeton = `{` + un mot (éventuellement `Groupe:Argument`) + `}`. */ export declare const TEMPLATE_TOKEN_REGEX: RegExp; /** * Nettoyage du texte produit : un jeton qui se résout à vide (valeur absente, * pas de tag assigné…) laisse sinon des séparateurs orphelins * (« Charbon : » ou « : 12 t »). On collapse les espaces, puis on retire les * séparateurs de tête et de queue. Volontairement limité aux EXTRÉMITÉS : un * gabarit « {Source} → {Target} » dont un seul bout manque doit rester lisible, * mais on ne va pas deviner quel séparateur interne supprimer. */ export declare function cleanTemplateResult(text: string): string; /** * Interpole les jetons d'un gabarit. `resolve` reçoit le nom du jeton (sans * accolades, espaces retirés) et renvoie : * - une chaîne (éventuellement vide) → le jeton est remplacé ; * - null / undefined → jeton INCONNU, laissé tel quel dans le texte (l'auteur * voit sa faute de frappe au lieu d'un trou silencieux). */ export declare function applyTemplate(template: string, resolve: (token: string) => string | null | undefined): string; /** Groupe de tags vu par les résolveurs (structurel : Class_DataTagGroup & co en sont). */ export type Type_TemplateTagGroup = { name: string; selected_tags_list: { display_name: string; }[]; }; /** Groupe de VIEW tags : la sélection ne vaut que si le filtre de vue est actif. */ export type Type_TemplateViewTagGroup = Type_TemplateTagGroup & { view_mode: boolean; }; /** * Jetons `{NomDuGroupe}` des groupes de data tags / view tags : remplacés par la * valeur SÉLECTIONNÉE du groupe (comportement historique du titre). En « vue * complète » (view_mode faux) un view tag reste sélectionné en interne mais le * diagramme n'est pas filtré → le jeton doit être vide, pas le dernier tag choisi. * Renvoie null si le jeton ne correspond à aucun groupe (jeton d'un autre * résolveur, ou inconnu). */ export declare function resolveTagGroupToken(token: string, data_taggs: Type_TemplateTagGroup[], view_taggs: Type_TemplateViewTagGroup[]): string | null; /** Tag assigné à un élément, vu par le résolveur `{Tag:...}`. */ export type Type_TemplateAssignedTag = { display_name: string; group: { id: string; name: string; }; }; /** * Jeton `{Tag:}` — tag assigné à l'élément dans le groupe désigné (par * nom, ou par id), le premier si plusieurs. `{Tag}` nu = tous les tags assignés, * joints par ', '. Renvoie null si le jeton n'est pas de la famille `Tag`. */ export declare function resolveAssignedTagToken(token: string, tags: Type_TemplateAssignedTag[]): string | null; /** Libellés inline (mêmes 7 langues que les AttributeConfig — pas des clés i18n). */ export type Type_TemplateTokenLabels = { en: string; fr: string; es: string; de: string; it: string; 'zh-CN': string; ja: string; }; export type Type_TemplateTokenDef = { /** Le jeton tel qu'inséré, accolades comprises. */ token: string; /** Alias acceptés à la lecture (compat e!Sankey), non proposés dans le menu. */ aliases?: string[]; labels: Type_TemplateTokenLabels; }; /** Jetons proposés pour un label de FLUX. */ export declare const LINK_TEMPLATE_TOKENS: Type_TemplateTokenDef[]; /** Jetons proposés pour un label de NŒUD (ou de zone de texte). */ export declare const NODE_TEMPLATE_TOKENS: Type_TemplateTokenDef[]; /** Jetons d'une ENTRÉE de légende (gabarit commun à toutes les entrées de tag). */ export declare const LEGEND_TEMPLATE_TOKENS: Type_TemplateTokenDef[]; /** * Nom canonique d'un jeton : replie les alias (compat e!Sankey `{Quantity}`, * `{UnitName}`, `{PercentProcessSource}`…) sur le jeton officiel. Rend null si * le jeton n'appartient pas au catalogue fourni. */ export declare function canonicalToken(token: string, catalog: Type_TemplateTokenDef[]): string | null; /** Libellé d'un jeton dans la langue active (repli anglais). */ export declare function templateTokenLabel(def: Type_TemplateTokenDef, language: string): string;