import type { GlobalPoint, LineSegment, LocalPoint, Radians } from "./types"; /** * Create a line segment from two points. * * @param points The two points delimiting the line segment on each end * @returns The line segment delineated by the points */ export declare function lineSegment

(a: P, b: P): LineSegment

; /** * * @param segment * @returns */ export declare const isLineSegment: (segment: unknown) => segment is LineSegment; /** * Return the coordinates resulting from rotating the given line about an origin by an angle in radians * note that when the origin is not given, the midpoint of the given line is used as the origin. * * @param l * @param angle * @param origin * @returns */ export declare const lineSegmentRotate: (l: LineSegment, angle: Radians, origin?: Point) => LineSegment; /** * Calculates the point two line segments with a definite start and end point * intersect at. */ export declare const segmentsIntersectAt: (a: Readonly>, b: Readonly>) => Point | null; export declare const pointOnLineSegment: (point: Point, line: LineSegment, threshold?: number) => boolean; export declare const distanceToLineSegment: (point: Point, line: LineSegment) => number; /** * Returns the intersection point of a segment and a line * * @param l * @param s * @returns */ export declare function lineSegmentIntersectionPoints(l: LineSegment, s: LineSegment, threshold?: number): Point | null; export declare function lineSegmentsDistance(s1: LineSegment, s2: LineSegment): number;