/** * Pure, worklet-safe clustering for reference-line grouping — collapse Form-A * lines whose value-Y positions sit near each other into one count handle. Free of * hooks / SharedValues so it unit-tests without Reanimated; the per-frame call + * rendering live in the controller / `ReferenceLineGroupOverlay`. */ /** One collapsed cluster of nearby reference lines. */ export interface ReferenceGroup { /** Centroid Y (canvas px) of the cluster — where the count handle is drawn. */ cy: number; /** Number of lines collapsed into the cluster (≥ 2). */ count: number; } /** Result of clustering a frame's reference-line Y positions. */ export interface ReferenceGrouping { /** * Index-aligned with the input Ys: `true` when this line's individual tag is * collapsed into a cluster (a multi-line group) and should be suppressed. */ hidden: boolean[]; /** One entry per multi-line cluster (singletons render normally, never here). */ groups: ReferenceGroup[]; } /** * Single-linkage cluster of reference-line handle Ys: lines whose sorted Y gaps are * all `<= radius` chain into one group. Entries `< 0` (not a Form-A line / off the * canvas) are ignored. Returns which lines are collapsed (`hidden`) plus a centroid * + count per multi-line cluster. A non-positive `radius` disables grouping. */ export declare function groupReferenceLines(ys: number[], radius: number): ReferenceGrouping; //# sourceMappingURL=referenceGroup.d.ts.map