/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */
import { Vertex2 } from '.';
import { Vertex } from './index';
/**
 * Represents a line between two (3D or 2D) points.
 */
export interface Line<T extends Vertex> {
    /** Start of line */
    readonly p1: T;
    /** End of line */
    readonly p2: T;
}
/**
 * Represents a 2D Line between two points.
 */
export declare class Line2D<T extends Vertex2> implements Line<T> {
    p1: T;
    p2: T;
    /**
     * Line constructor
     * @param pt1 Start of line.
     * @param pt2 End of line.
     */
    constructor(p1: T, p2: T);
    /**
     * Checks if `this` intersects `line`.
     * @param line Line.
     * @returns `true` if there is an intersection, `false` otherwise.
     */
    intersects(line: Line<T>): boolean;
    /**
     * Checks if two lines intersects.
     * @param line1 First line
     * @param line2 Second line
     * @param dst If an intersection is found this will contain the point where the two lines intersect,
     * otherwise it will contain the nearest point between the two lines.
     * @returns `true` if there is a intersection, `false` otherwise.
     */
    static intersects<T extends Vertex2>(line1: Line<T>, line2: Line<T>, dst?: {
        x: number;
        y: number;
    }): boolean;
    /**
     * Takes three Point inputs a, b, and c and returns +1 if a->b->c is a counterclockwise angle,
     * -1 if a->b->c is a clockwise angle, and 0 if a->b->c are collinear.
     * @param a Vertex 2 point.
     * @param b Vertex 2 point.
     * @param c Vertex 2 point.
     * @returns +1 if ccw, -1 if cw, 0 if collinear.
     */
    private static ccw;
}
//# sourceMappingURL=Line2D.d.ts.map