import type { Class_DrawingArea } from './DrawingArea'; import { Class_ProtoElement } from '../Elements/Element'; import { Class_NodeElement } from '../Elements/Node'; import { Class_LinkElement } from '../Elements/Link'; /** * Applique le style (styles custom + attributs) de `source` sur `target` et renvoie les fonctions * undo/redo correspondantes (SANS les enregistrer dans l'historique — c'est à l'appelant de les * regrouper). Renvoie null si les deux éléments ne sont pas de même nature (nœud→nœud, flux→flux). */ export declare function applyStyleFromSourceToTarget(source: Class_ProtoElement, target: Class_ProtoElement): { undo: () => void; redo: () => void; } | null; /** * Propage le style de CHAQUE nœud parent de `sources` à toute sa descendance dans la hiérarchie de * dimensions (désagrégation), même si les enfants sont actuellement agrégés/masqués. Le tout dans * une seule transition d'historique. */ export declare function applyStyleToNodesChildren(da: Class_DrawingArea, sources: Class_NodeElement[]): void; /** * Assigne la colonne du nœud parent à toute sa descendance dans la hiérarchie de dimensions * (désagrégation), même si les enfants sont actuellement agrégés/masqués. Tous les descendants sont * réassignés ET reverrouillés (y compris ceux déjà verrouillés), pour qu'ils suivent le parent même * après un déplacement de celui-ci. * * Pour chaque enfant on combine trois choses : * - `position_u` = colonne du parent (l'index de colonne) ; * - `shape_position_u_locked = true` : le verrou est le signal « édité, à garder ». * C'est lui qui fait persister `position_u` (cf. NodeBasePersistence.toJSON, qui ne * sérialise u/v qu'en mode parametric OU si verrouillé) et qui empêche autosankey / * `inferPositionUFromX` de recalculer la colonne depuis x au chargement ; * - le CENTRE stocké (`setStoredCenter`) aligné sur le coin du parent : en mode * `absolute` le nœud est DESSINÉ d'après sa géométrie, et c'est le centre (pas * position_x seul) qui est persisté — sans ça l'enfant « reviendrait » à sa place. */ export declare function assignColumnToNodesChildren(da: Class_DrawingArea, sources: Class_NodeElement[]): void; /** * Propage le style de CHAQUE flux parent de `sources` à ses propres flux enfants, le tout regroupé * dans une seule transition d'historique. */ export declare function applyStyleToLinksChildren(da: Class_DrawingArea, sources: Class_LinkElement[]): void;