/**
 * Represents a 2D point with x and y coordinates.
 */
export declare class Point {
    /** The x-coordinate of the point */
    x: number;
    /** The y-coordinate of the point */
    y: number;
    /**
     * Creates a new Point instance.
     * @param x - The x-coordinate (defaults to 0)
     * @param y - The y-coordinate (defaults to 0)
     */
    constructor(x?: number, y?: number);
    /**
     * Sets the coordinates of the point.
     * @param x - The new x-coordinate
     * @param y - The new y-coordinate
     * @returns The point instance for method chaining
     */
    set(x: number, y: number): Point;
    /**
     * Calculates the length (magnitude) of the vector from origin to this point.
     * @returns The length of the vector
     */
    length(): number;
    /**
     * Normalizes the point vector to have a length of 1.
     * @returns The point instance for method chaining
     */
    normalize(): Point;
    /**
     * Creates a new Point instance with the same coordinates.
     * @returns A new Point instance with the same x and y values
     */
    clone(): Point;
    /**
     * Adds another point's coordinates to this point.
     * @param point - The point to add
     * @returns The point instance for method chaining
     */
    add(point: Point): Point;
    /**
     * Subtracts another point's coordinates from this point.
     * @param point - The point to subtract
     * @returns The point instance for method chaining
     */
    subtract(point: Point): Point;
    /**
     * Multiplies both coordinates by a scalar value.
     * @param scalar - The scalar value to multiply by
     * @returns The point instance for method chaining
     */
    multiply(scalar: number): Point;
    /**
     * Divides both coordinates by a scalar value.
     * @param scalar - The scalar value to divide by
     * @returns The point instance for method chaining
     */
    divide(scalar: number): Point;
    /**
     * Multiplies x and y coordinates by different scalar values.
     * @param xScalar - The scalar value to multiply x-coordinate by
     * @param yScalar - The scalar value to multiply y-coordinate by
     * @returns The point instance for method chaining
     */
    multiplyScalars(xScalar: number, yScalar: number): Point;
    /**
     * Divides x and y coordinates by different scalar values.
     * @param xScalar - The scalar value to divide x-coordinate by
     * @param yScalar - The scalar value to divide y-coordinate by
     * @returns The point instance for method chaining
     */
    divideScalars(xScalar: number, yScalar: number): Point;
    /**
     * Calculates the Euclidean distance to another point.
     * @param point - The point to calculate distance to
     * @returns The distance between the two points
     */
    distanceTo(point: Point): number;
}
