import type { SchedulerEventSide } from '@mui/x-scheduler-internals/models'; import type { SchedulerDependency, SchedulerDependencyId } from '@mui/x-scheduler-internals-premium/models'; import type { DependencyAnchorResolver, DependencyArrowPoint } from "./dependencyAnchorResolver.mjs"; export interface DependencyArrow { /** * Unique key of the arrow: a dependency renders one arrow per pair of row * appearances of its events. */ key: string; id: SchedulerDependencyId; /** * The SVG path of the arrow, in absolute row-space pixels (y = 0 is the top of the * first row), so it does not depend on the scroll position. * Built on first read and cached, like `hitD`: a row re-measure recomputes every * arrow, and only the ones surviving the viewport filter need their string. */ readonly d: string; /** * The path of the invisible click hit-area: the same route with both ends trimmed, * so the terminal (at the source anchor) and the resize handle (under the * arrowhead) stay reachable. * Derived on first read and cached: only the interactions layer needs it. */ readonly hitD: string; /** * The point where the arrowhead is drawn, in the same coordinate space as `d`: the * target edge anchor, except when the route clamps at the timeline edge. */ endPoint: DependencyArrowPoint; /** * The edge of the target event the arrow enters, and so the side of `endPoint` the * arrow comes from. */ targetEdge: SchedulerEventSide; /** * Horizontal bounding box of the arrow, as fractions of the events area width. */ minXFraction: number; maxXFraction: number; /** * Vertical bounding box of the arrow, as row indexes. */ minRowIndex: number; maxRowIndex: number; } /** * Computes the arrow of each renderable dependency, connecting the edges of its two * events that its type constrains. */ export declare function computeDependencyArrows(resolver: DependencyAnchorResolver, dependencies: readonly SchedulerDependency[]): DependencyArrow[];