import type { Type_LinkColorRule, Type_StylePatch, Type_ThemeJSON } from '../types/Theme'; type SmLocal = { [k: string]: string | number | boolean; }; interface SmNode { id: string; name: string; svg_parent_group: string; x: number; y: number; u: number; v: number; style: string; local: SmLocal; tags: Record; dimensions: Record; inputLinksId: string[]; outputLinksId: string[]; links_order: string[]; input_value: number; output_value: number; } interface SmFlow { id: string; is_visible: boolean; svg_parent_group: string; idSource: string; idTarget: string; style: string; local: SmLocal; displaying_order: number; tooltip_text: string; value: { id: string; data_value: number; tags: Record; }; } type SmSettings = { [k: string]: string; }; export interface SmParsedDiagram { version: string; nodes: { [id: string]: SmNode; }; links: { [id: string]: SmFlow; }; user_scale: number; couleur_fond_sankey: string; style_node: { default: SmLocal; }; style_link: { default: SmLocal; }; grid_visible: boolean; theme: Type_ThemeJSON; } /** Réciproque de `unescapeName`, pour l'export. */ export declare const escapeName: (text: string) => string; /** * L'apparence SankeyMATIC, exprimée en attributs MODERNES (clés de * `ALL_ATTRIBUTES_CONFIG`), destinée au patch `theme.styles`. * * Pourquoi en double avec `defaultNodeStyle` / `defaultLinkStyle` ? Parce que ces * deux-là écrivent les dicts `style_node` / `style_link` au format 0.9, qui est le * chemin de chargement éprouvé. Le patch, lui, sert à (RÉ)APPLIQUER le thème sur un * diagramme déjà ouvert, sans repasser par un import. Les deux dérivent des mêmes * `setting`, donc ne peuvent pas diverger sur le fond ; une fois la bascule de thème * validée à l'écran, les dicts 0.9 pourront disparaître au profit du seul patch. */ export declare const sankeymaticStylePatches: (setting: SmSettings, linkRule: Type_LinkColorRule) => { [style_id: string]: Type_StylePatch; }; /** * Le thème `sankeymatic` complet. Appelé par le parseur avec les réglages du fichier * importé, et par le sélecteur de thème avec les réglages par défaut. */ export declare const buildSankeymaticTheme: (setting?: SmSettings, linkRule?: Type_LinkColorRule) => Type_ThemeJSON; /** * Parse un texte SankeyMATIC natif et renvoie la structure JSON (version 0.9) * prête pour `fromJSON`. Placement fidèle à SankeyMATIC ; l'appelant peut relancer * `computeAutoSankey` après `fromJSON` pour un rendu OpenSankey. */ export declare const parseSankeymaticText: (rawText: string) => SmParsedDiagram; export {};