export interface HullPoint{x:number;y:number;} /** * Andrew's monotone chain convex hull, O(n log n), dependency-free. Returns hull vertices in * counter-clockwise order with no duplicate closing point. 0/1/2-point inputs pass through * unchanged -- `hullPathD()` below handles those as a dot/capsule via the caller's own stroke, * not a distinct geometry code path here. */ export declare function convexHull(points:HullPoint[]):HullPoint[]; /** * Path data for a hull's raw polygon. The padded, rounded "blob" look comes entirely from the * caller's own stroke (`stroke-width: 2 * padding`, round linejoin/linecap) around this raw * shape -- a single point draws as a zero-length line (a well-known SVG idiom: a round dot under * a round linecap), two points as a plain open segment (the stroke then renders a capsule). */ export declare function hullPathD(hull:HullPoint[]):string;export declare function hullCentroidX(hull:HullPoint[]):number; /** * Lowest (minimum) y across `hull`'s vertices, or 0 for an empty hull. A plain scan, not * `Math.min(...hull.map(...))` -- spreading a large array as call arguments throws `RangeError: * Maximum call stack size exceeded` once the engine's argument-list limit is exceeded (verified at * ~150k+ elements). Hull-vertex counts are practically bounded by `lr-graph`'s own ~5,000-node * ceiling, but this mirrors heatmap-scale.ts's `minMax()` precedent for consistency. */ export declare function hullTopY(hull:HullPoint[]):number;