export type XY = readonly [number, number] | Point;
export declare class Point {
    readonly x: number;
    readonly y: number;
    constructor(x: number, y: number);
    static fromXY(xy: readonly [number, number]): Point;
    add(other: XY): Point;
    sub(other: XY): Point;
    /** Scalar − this (Python `__rsub__` for scalar). */
    subFromScalar(s: number): Point;
    mul(other: Point | number): Point;
    div(other: Point | number): Point;
    neg(): Point;
    rotate(angle: number, center?: XY): Point;
    mirrorx(centerx?: number): Point;
    flip(): Point;
    toTuple(): [number, number];
}
export declare function point(x: number, y: number): Point;
/** Python `util.rotate(xy, angle, center)`. */
export declare function rotate(xy: XY, angle: number, center?: XY): Point;
export declare function mirrorx(xy: XY, centerx?: number): Point;
export declare function flip(xy: XY): Point;
export declare function delta(a: XY, b: XY): Point;
export declare function angle(a: XY, b: XY): number;
export declare function dist(a: XY, b: XY): number;
export { linspace } from "./util.js";
