import { Vector2D } from '../vector2d';
import { VectorLine } from './line';
/**
 * Calculate the nearest point from a point to a line.
 * @param p point
 * @param line line
 * @returns point on the line
 */
export declare function getNearestPoint(p: Vector2D, line: VectorLine): Vector2D;
export declare function getIntersectionOfLineTargetAndCircle(source: Vector2D, target: Vector2D, center: Vector2D, radius: number): Vector2D | null;
export declare function getIntersectionOfLineTargetAndCircle2(source: Vector2D, target: Vector2D, center: Vector2D, radius: number, nearBy: Vector2D): Vector2D | null;
/**
 * Calculate the intersection of two lines.
 * @param line1 line 1
 * @param line2 line 2
 * @returns intersection point
 */
export declare function getIntersectionPointOfLines(line1: VectorLine, line2: VectorLine): Vector2D;
export declare function getIntersectionOfCircles(center1: Vector2D, radius1: number, center2: Vector2D, radius2: number, near: Vector2D): Vector2D | null;
export declare function getIntersectionOfCircles(center1: Vector2D, radius1: number, center2: Vector2D, radius2: number): [Vector2D, Vector2D] | null;
