import type { Class_DrawingArea } from '../types/DrawingArea'; import type { Class_NodeElement } from '../Elements/Node'; import type { Class_LinkElement } from '../Elements/Link'; import type { Class_DataTag } from '../types/Tag'; export declare class NodePositioningReference { readonly drawingArea: Class_DrawingArea; constructor(drawingArea: Class_DrawingArea); private _prop_reference_link; private _prop_reference_node; private _prop_reference_datatag_ids; /** * #1231 — Flux de référence du mode proportionnel (sélectionné au clic droit). * Invalidé automatiquement s'il n'est plus visible (désagrégation, suppression…). */ get proportionalReferenceLink(): Class_LinkElement | undefined; /** #1231b — Nœud de référence (visibilité-gated), pour l'état coché du menu nœud. */ get proportionalReferenceNode(): Class_NodeElement | undefined; /** #1231b — Nœud-stock de référence BRUT (sans filtre de visibilité). undefined si la * référence est un flux, ou s'il n'y en a aucune. */ get rawReferenceNode(): Class_NodeElement | undefined; /** #1231b — Élément de référence BRUT (lien OU nœud), sans filtre de visibilité. */ get rawReference(): Class_LinkElement | Class_NodeElement | undefined; /** #1231b — Élément de référence visibilité-gated (undefined si masqué). */ get gatedReference(): Class_LinkElement | Class_NodeElement | undefined; private clearReferenceMarkers; setProportionalReferenceLink(link: Class_LinkElement | undefined): void; /** * #1231b — Désigne (ou retire) un NŒUD-STOCK comme élément de référence. Mutuellement * exclusif avec le flux de référence. Le marqueur persisté `shape_is_reference_stock` est * posé sur le nœud (relu au chargement par `attachReferenceLinkFromAttributes`). */ setProportionalReferenceNode(node: Class_NodeElement | undefined): void; /** #1231 — Datatag de référence (ids) — accesseurs pour la persistance (cf. DrawingArea toJSON/fromJSON). */ get proportionalReferenceDatatagIds(): string[] | undefined; set proportionalReferenceDatatagIds(ids: string[] | undefined); /** #1231 — Résout les ids du datatag de référence en objets Class_DataTag (via les groupes du sankey). */ resolveReferenceDataTags(): Class_DataTag[]; /** * #1231 — Valeur (absolue) du flux de référence AU DATATAG DE RÉFÉRENCE. Définit le * dénominateur du facteur f. Fallback sur la valeur courante si aucun datatag de réf * (rétrocompat). undefined si pas de flux de référence ou valeur indisponible. */ referenceFluxRefValue(): number | undefined; /** * #1231b — Valeur COURANTE (datatags sélectionnés, hors vue) de l'élément de référence. * Flux : épaisseur via valeur courante. Nœud-stock : stock initial courant. abs ; 0 si rien. */ referenceCurrentValue(): number; /** * #1231b — Valeur de l'élément de référence dans la VUE courante (correspondant visible). * Flux : somme des liens enfants visibles (referenceFluxViewValue). Nœud-stock : somme des * stocks des nœuds descendants visibles portant l'étiquette view tag sélectionnée. */ referenceViewValue(): number; /** * #1231 — Au chargement (persistance) : ré-attache le flux de référence depuis le marqueur * persisté `shape_is_reference_flux`. La capture (médiane proportionnelle / échelle) se * fait paresseusement au 1er dessin (anchorProportionalNodes / applyAdaptedScale). */ attachReferenceLinkFromAttributes(): void; /** #1231 — Centre vertical d'un flux à mi-parcours = moyenne des lignes centrales source/cible. */ fluxCenterY(link: Class_LinkElement): number; /** #1231 — Épaisseur représentative d'un flux = moyenne des épaisseurs source/cible (px). */ fluxThickness(link: Class_LinkElement): number; /** * Mode vue — valeur du flux de référence dans la VUE courante : somme des liens visibles dont * la source descend de `ref.source`, la cible descend de `ref.target`, ET dont les DEUX * extrémités portent l'étiquette view tag sélectionnée (viewTagVisibility === true). Ce dernier * filtre est indispensable car la hiérarchie a plusieurs dimensions (essences ET propriétés) : * sans lui on cumulerait les liens croisés (ex. essence chêne → propriété domaniale). */ referenceFluxViewValue(ref: Class_LinkElement): number; /** * #1231b — Mode vue — valeur du nœud-stock de référence dans la VUE courante : somme des * stocks des nœuds visibles qui descendent du nœud de référence ET portent l'étiquette view * tag sélectionnée (viewTagVisibility === true). Analogue stock de referenceFluxViewValue. */ referenceStockViewValue(node: Class_NodeElement): number; }