import { type Type_JSON } from '../types/Utils'; import { Class_ContainerElement } from '../Elements/TextZone'; import { Class_NodeElement } from '../Elements/Node'; import { Class_BaseElement, Class_ElementStyle, Class_ProtoElement } from '../Elements/Element'; import { Class_LinkElement } from '../Elements/Link'; import { Class_NodeBase } from '../Elements/NodeBase'; import { Class_LegendConfig } from '../Elements/LegendGenerator'; import { Class_Sankey } from '../types/Sankey'; import { Class_DrawingArea } from '../types/DrawingArea'; export declare class BaseElementPersistence { static fromJSON_pre_0_9(_base_element: BaseElementPersistence, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_base_element: BaseElementPersistence, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(_base_element: BaseElementPersistence, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static toJSON(base_element: Class_BaseElement, json_object: Type_JSON, _kwargs?: Type_JSON): Type_JSON; static fromJSON(_version: number, base_element: Class_ProtoElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; } export declare class ProtoElementPersistence extends BaseElementPersistence { static toJSON(proto_element: Class_ProtoElement, json_object: Type_JSON, kwargs?: Type_JSON): Type_JSON; static fromJSON_pre_0_9(_base_element: Class_ProtoElement, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_base_element: Class_ProtoElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(proto_element: Class_ProtoElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON(version: number, proto_element: Class_ProtoElement, json_object: Type_JSON, kwargs?: Type_JSON): void; } export declare class NodeBasePersistence extends ProtoElementPersistence { static toJSON(node_base: Class_NodeBase, json_object: Type_JSON, kwargs?: Type_JSON): Type_JSON; static fromJSON_pre_0_9(_base_element: Class_NodeBase, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_base_element: Class_NodeBase, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static Class_NodeBase(_base_element: BaseElementPersistence, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON(version: number, node_base: Class_NodeBase, json_node_object: Type_JSON, kwargs?: Type_JSON): void; } export declare class ContainerPersistence extends NodeBasePersistence { static toJSON(container: Class_ContainerElement, json_object: Type_JSON, kwargs?: Type_JSON): Type_JSON; static fromJSON_pre_0_9(container: Class_ContainerElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_container: Class_ContainerElement, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(container: Class_ContainerElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; /** * Deserialize container from JSON */ static fromJSON(version: number, container: Class_ContainerElement, json_object: Type_JSON, kwargs?: Type_JSON): void; } export declare class LinkElementPersistence extends ProtoElementPersistence { static toJSON(link: Class_LinkElement, json_object: Type_JSON, kwargs?: Type_JSON): Type_JSON; static fromJSON_pre_0_9(link: Class_LinkElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_link: Class_LinkElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(link: Class_LinkElement, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON(version: number, link: Class_LinkElement, json_object: Type_JSON, kwargs?: Type_JSON): void; } export declare class NodeElementPersistence extends NodeBasePersistence { static toJSON(node: Class_NodeElement, json_object: Type_JSON, kwargs?: Type_JSON): Type_JSON; static linksFromJSON(version: number, node: Class_NodeElement, json_node_object: Type_JSON, matching_links_id?: { [_: string]: string; }): void; static fromJSON_pre_0_9(node: Class_NodeElement, json_object: Type_JSON, kwargs?: Type_JSON): void; static fromJSON_0_9(node: Class_NodeElement, json_object: Type_JSON, kwargs?: Type_JSON): void; static fromJSON_0_91(node: Class_NodeElement, json_object: Type_JSON, kwargs?: Type_JSON): void; static fromJSON(version: number, node: Class_NodeElement, json_node_object: Type_JSON, kwargs?: Type_JSON): void; } /** * OS#1254 — persistance des PARAMÈTRES du générateur de légende. * * Les zones de la légende elles-mêmes ('legend', 'legend-*') sont des * conteneurs ordinaires, sérialisés dans 'labels' comme les autres. Le * sous-objet 'legend' ne porte plus que les paramètres du générateur ; les * clés reprennent celles de l'ancienne légende-objet pour que la lecture des * anciens fichiers soit directe. Nouveauté : 'legend_managed' (absent = true). * L'ancien mode « fixe à l'écran » ('legend_stick_to_drawing' / * 'legacy_legend') est supprimé : ignoré en lecture, la légende vit dans le * monde. En mode géré, les zones sont régénérées au premier draw ; en mode * cassé, elles sont simplement relues depuis 'labels'. */ export declare class LegendPersistence { static toJSON(legend: Class_LegendConfig, json_object: Type_JSON): Type_JSON; static fromJSON_0_91(_legend: Class_LegendConfig, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON(_version: number, legend: Class_LegendConfig, json_object: Type_JSON, _kwargs?: Type_JSON): void; } export declare class StylePersistence { static fromJSON_pre_0_9(_style: Class_ElementStyle, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_style: Class_ElementStyle, _json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(style: Class_ElementStyle, json_object: Type_JSON, _kwargs?: Type_JSON): void; static toJSON(style: Class_ElementStyle): Type_JSON; static fromJSON(version: number, style: Class_ElementStyle, json_object: Type_JSON, kwargs?: Type_JSON): void; } export declare class SankeyPersistence { private static load_containers; private static load_nodes; private static load_links; static toJSON(sankey: Class_Sankey, kwargs?: Type_JSON): Type_JSON; static fromJSON_pre_0_9(sankey: Class_Sankey, json_object: Type_JSON, kwargs?: Type_JSON): void; static fromJSON_0_9(sankey: Class_Sankey, json_object: Type_JSON, kwargs?: Type_JSON): void; static fromJSON_0_91(sankey: Class_Sankey, json_object: Type_JSON, kwargs?: Type_JSON): void; /** * Setting value of sankey and substructur from JSON * * @param {{[_:string]:any} json_object * @memberof ClassTemplate_Legend */ static fromJSON(version: number, sankey: Class_Sankey, json_object: Type_JSON): void; /** * OS#1286 — convertit chaque unité « texte libre » (unit_type effectif * `unit_name` avec un texte non vide) des éléments ET des styles vers une * référence du registre (`unit_model`) : * - correspondance intelligente d'abord (symbole exact puis normalisé/alias * — « tonne » → t — À coefficient == unit_factor, condition d'un affichage * identique : l'ancien mode divisait la valeur par unit_factor) ; * - sinon l'unité est AJOUTÉE à la grandeur « Unités du fichier » avec * coefficient = unit_factor, et référencée. * Idempotente : après migration le texte est un id du registre, donc * `units.resolve` le trouve et le second passage sort tout de suite. Un texte * vide est laissé tel quel (rien n'était affiché, rien ne l'est avec le * nouveau défaut `unit_model` à référence vide). */ private static migrate_legacy_unit_names; private static migrate_legacy_link_ratios; private static load_tags; } export declare class DrawingAreaPersistence { static toJSON(drawing_area: Class_DrawingArea, kwargs?: Type_JSON): { [x: string]: string | number | boolean | string[] | Type_JSON; }; static fromJSON_pre_0_9(drawing_area: Class_DrawingArea, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_9(_drawing_area: Class_DrawingArea, json_object: Type_JSON, _kwargs?: Type_JSON): void; static fromJSON_0_91(drawing_area: Class_DrawingArea, json_object: Type_JSON, _kwargs?: Type_JSON): void; /** * Migration 0.93 → 0.94 (issue #1225) — rétrocompatibilité expansion latérale. * * Avant la refonte, l'expansion latérale matérialisait des Class_NodeElement * avec id suffixé `expandleft` / `expandright` (clones du master) et leurs * propres liens. Le nouveau modèle porte un flag `expanded_left|right` sur * Class_NodeDimension et utilise les nœuds réels pour les liens d'expansion. * * Suffixe reconnu : `expand(left|right)(_)?` (variante `_0` observée). * * Phase 0 — promotion des clones orphelins : sur certains fichiers legacy, * seul le clone est sérialisé (pas de master séparé). On renomme le premier * clone par master_id pour préserver x, y, name, style, local, tags, * links_order, etc. L'expansion sera à refaire côté UI (les dims n'existent * pas sur ce format). * * Phase 1 — pour chaque clone restant (master présent à l'origine) : * 1. Identifier le master (id sans suffixe) et le côté (left/right). * 2. Identifier le parent expansé via les liens du clone : c'est le nœud * dont l'id est aussi `parent_name` d'une dim côté master. * 3. Poser `expanded_left|right: true` sur cette dim du master. * 4. Réécrire les liens du clone : remplacer `clone_id` par `master_id` * dans `idSource`/`idTarget`. Si le lien équivalent (même source/target) * existe déjà, supprimer le lien réécrit pour éviter le doublon. * 5. Supprimer le nœud clone du JSON. * * Nettoyage final : `attachedNodes`, `inputLinksId`, `outputLinksId`, * `links_order` purgés des références obsolètes. */ static fromJSON_pre_0_94(json_object: Type_JSON): void; static fromJSON(drawing_area: Class_DrawingArea, json_object: Type_JSON, kwargs?: Type_JSON): void; }