/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */
import { Vertex3 } from '.';
export declare class Shapes {
    private static _direction1;
    private static _direction2;
    private static _prevStartLeft;
    private static _prevStartRight;
    private static _line;
    static lineIntersects(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number): {
        x: number;
        y: number;
        seg1: boolean;
        seg2: boolean;
    } | null;
    /**
     * Creates points to form the contour of a polygon of a certain thickness that follows a line of points
     * @param linePoints The points forming a poly line, they must be in sequence (a -> b -> c)
     * @param thickness The distance between the points that form the polygon contour
     * @returns The points forming the contour around the poly line
     */
    static createLinePolygonPoints(linePoints: Vertex3[], thickness: number): Vertex3[];
    /**
     * Creates 7 points which form the contour of an arrow
     * @param bluntPoint The point which forms the blunt end of the arrow
     * @param arrowPoint The point where the arrow will point from
     * @param lineThickness How thick the line should be
     * @param arrowHeadWidth How far out the arrow wings should be, in relation to the line thickness
     * @param arrowHeadHeight How far out the arrow point should project from arrowPoint, in relation to the line thickness
     * @returns The 7 contour points which form the arrow
     */
    static createArrowPolygonPoints(bluntPoint: Vertex3, arrowPoint: Vertex3, lineThickness: number, arrowHeadWidth: number, arrowHeadHeight: number): Vertex3[];
    /**
     * Creates a bunch of points that form the contours in a circle (so no center point is created)
     * @param circlePoint The center of the circle
     * @param radiusPoint An arbitrary point on the plane of the circle, it's distance from the circlePoint is used as the radius of the circle
     * @param lineThickness How thick the line representing the circle should be, a value less than or equal to 0 indicates that the circle should be completely filled
     * @param segments How many segments you want around circlePoint
     * @returns The points to use to form the contour around the circle
     */
    static createCirclePolygonPoints(circlePoint: Vertex3, radiusPoint: Vertex3, lineThickness: number, segments: number): Vertex3[];
}
//# sourceMappingURL=Shapes.d.ts.map