import type { Class_NodeBase } from '../Elements/NodeBase'; export type { Type_ConnectionDirection } from './connectionDirection'; export declare class Class_ConnectionGestureHandler { /** Nœud dont les flèches sont actuellement affichées (null = rien d'affiché). */ private _shown_for; private _hide_timer; private _drag_source; private _drag_active; private _drag_acc_dx; private _drag_acc_dy; private _drag_last_pos; private _candidates; private _hovered_candidate; /** Survol d'un nœud, AUCUN bouton enfoncé : montre les flèches directionnelles. */ onNodeHover(node: Class_NodeBase, event: React.MouseEvent): void; /** Le curseur quitte le nœud : masquage différé (le temps d'atteindre une flèche). */ onNodeOut(node: Class_NodeBase): void; /** Un drag de nœud démarre : les flèches ne doivent pas gêner le geste. */ onNodeDragStart(): void; /** Masque immédiatement les flèches (état de survol oublié). */ hideArrows(): void; private _cancelHide; private _scheduleHide; private _showArrows; private _onArrowDragStart; private _onArrowDrag; private _onArrowDragEnd; /** Amorce l'aperçu du flux : lien fantôme du moteur + surlignage des cibles valides. */ private _beginConnectionDrag; /** Suit le pointeur : déplace la cible fantôme et surligne la cible survolée. */ private _updateConnectionDrag; /** Cible valide sous le point (repère monde de la DA), ou null. */ private _hitTestCandidate; /** * Relâché du glisser : crée le flux si la cible est valide (transaction annulable), * sinon ANNULE proprement (aucune trace dans le modèle ni dans l'historique). */ private _resolveConnectionDrop; /** Hit-test général (hors liste de candidats, utilisé au relâché) excluant la source. */ private _hitTestCandidateAt; /** * Crée un nœud CLONE de `source` (fabrique de duplication existante : addNewNode + * copyFrom, cf. copyNodes) déjà connecté par un flux dans la direction `dir`, à une * position fournie par la DA (espacement + alignement grille). Transaction annulable : * l'undo supprime le clone (deleteNode supprime le flux attaché en cascade). */ private _createConnectedNode; }