export function calc(alg: any): any;
export class Point extends APoint {
    calc(alg: any): any;
    clone(): Point;
}
export class IPoint extends APoint {
    /**
     * @returns {Point & number}
     */
    toPoint(): Point & number;
}
export function point(x: number | (() => number), y?: number): Point & number;
export function ipoint(x: number | (() => number), y?: number): IPoint & number;
export const ZERO: IPoint & number;
export const FORWARD: IPoint & number;
export const LEFT: IPoint & number;
declare class APoint {
    constructor(...args: any[]);
    valueOf(): void;
    /**
     * @returns {this}
     */
    normalize(): this;
    /**
     * @returns {this}
     */
    norm(): this;
    dot(v: any): number;
    getRad(): number;
    /**
     * @param {APoint} v
     */
    angleTo(v: APoint): number;
    /**
     * @param {number} angle
     * @returns {this}
     */
    rotate(angle: number): this;
    /**
     * @param {APoint} v
     */
    distance(v: APoint): number;
    /**
     * @param {APoint} v
     */
    dist(v: APoint): number;
    /**
     * @returns {[number, number]}
     */
    toArray(): [number, number];
    calc(alg: any): void;
    clone(): void;
    equals(v: any): boolean;
    toJSON(): {
        x: any;
        y: any;
    };
    toString(): string;
    toCSSVars(name: any, target: any): {};
    get lengthSq(): number;
    get length(): number;
    get lensq(): number;
    get len(): number;
    set x(_: any);
    get x(): any;
    set y(_: any);
    get y(): any;
    set z(_: void);
    get z(): void;
    [Symbol.iterator](): ArrayIterator<any>;
    [AXES]: any[];
}
declare const AXES: unique symbol;
export {};
