import { xPositionOrCoord } from "./types.js";
/**
 * An object representing a point in a 2-d space (Euclidean space)
 */
export declare class Point {
    x: number;
    y: number;
    /**
     * @param x The x coordinate or the array with x and y position values
     * @param y Optional when the `x` is an array. The y position of the point
     */
    constructor(x: xPositionOrCoord, y?: number);
    /**
     * Copies the current point as new object
     * @return A copy of the object
     */
    copy(): Point;
    /**
     * Validates the point value.
     * @return True if the point has valid values.
     */
    validate(): boolean;
    /**
     * Adds another point to this point and returns a new point.
     * @param v Point or a number to add.
     * @returns Created new point
     */
    add(v: Point | number): Point;
    /**
     * Subtracts another point from this point and returns a new point.
     * @param v Point or a number to add.
     * @returns Created new point
     */
    subtract(v: Point | number): Point;
    /**
     * Multiplies this point by another point or a number and returns a new point.
     * @param v Point or a number to add.
     * @returns Created new point
     */
    multiply(v: Point | number): Point;
    /**
     * Divides this point by another point or a number and returns a new point.
     * @param v Point or a number to add.
     * @returns Created new point
     */
    divide(v: Point | number): Point;
    /**
     * Subtracts another point to this point and returns a new point.
     * @param v Point or a number to add.
     * @returns True when points are equal
     */
    equals(v: Point): boolean;
    /**
     * Computes an angle to another point in radians.
     * @param v Point or a number to add.
     * @returns True when points are equal
     */
    angle(v: Point): number;
    /**
    * Computes an angle to another point in degrees.
    * @param v Point or a number to add.
    * @returns True when points are equal
    */
    degrees(v: Point): number;
    /**
     * Computes the distance to the other point.
     */
    distance(other: Point): number;
    /**
     * Computes the distance between two points.
     */
    static distance(p1: Point, p2: Point): number;
}
//# sourceMappingURL=Point.d.ts.map