import type { InternalNodeBase, NodeLookup, XYPosition } from '@xyflow/system'; import type { FlowProps, InternalFlowStore, NodeBase, EdgeBase } from './types.ts'; /** * Clamp a child node's drag position so the node's rect stays inside * its parent's rect — implements xyflow's `extent: 'parent'` contract * for the pointer-paced single-node drag handler. * * Operates on the **relative** coordinate the parent-relative model * stores in `userNode.position`: the constraint per axis is * `0 ≤ pos ≤ parentSize − childSize`. Returns the input unchanged when * the node has no `parentId`, isn't `extent: 'parent'`, the parent is * missing, or either node is unmeasured. * * Exposed (non-default-export) so the same primitive can be reused if * the C4 XYDrag integration replaces the inline drag handler — the * extent contract remains the same. */ export declare function clampDragPositionToParent(position: XYPosition, nodeId: string, lookup: NodeLookup>): XYPosition; /** * Attach all pointer-paced + ResizeObserver-based subsystems to the * outer `
` rendered by the JSX `` component. * * Inside a reactive root (`createRoot`), this also registers * `onCleanup` callbacks for the panZoom destroy / ResizeObserver * disconnect / keyboard listener removal lifecycle. */ export declare function attachFlowSubsystems(el: HTMLElement, store: InternalFlowStore, props: FlowProps): void; //# sourceMappingURL=flow-subsystems.d.ts.map