export function calc(alg: any): any;
export class Vector extends AVector {
    /**
     * @param {() => number} alg
     * @returns {Vector & number}
     */
    calc(alg: () => number): Vector & number;
    clone(): Vector;
}
export class Victor extends AVector {
    /**
     * @returns {Vector & number}
     */
    toVector(): Vector & number;
    clone(): this;
}
export function vector(x: number | (() => number), y?: number, z?: number): Vector & number;
export function victor(x: number | (() => number), y?: number, z?: number): Victor & number;
export const ZERO: Victor & number;
export const FORWARD: Victor & number;
export const BACK: Victor & number;
export const LEFT: Victor & number;
export const RIGHT: Victor & number;
export const UP: Victor & number;
export const BOTTOM: Victor & number;
export const ONE: Victor & number;
declare class AVector {
    constructor(...args: any[]);
    valueOf(): void;
    /**
     * @returns {this}
     */
    normalize(): this;
    /**
     * @returns {this}
     */
    norm(): this;
    dot(v: any): number;
    /**
     * @param {AVector} v
     * @returns {this}
     */
    cross(v: AVector): this;
    /**
     * @param {AVector} v
     * @returns {this}
     */
    crossNormalize(v: AVector): this;
    /**
     * @param {AVector} v
     * @returns {this}
     */
    cn(v: AVector): this;
    toAngles(): {
        theta: number;
        phi: number;
    };
    /**
     * @param {AVector} v
     */
    angleTo(v: AVector): number;
    multiply(quat: any): any;
    multiplyMat3(other: any): any;
    multiplyVec3({ x, y, z }: {
        x: any;
        y: any;
        z: any;
    }): any;
    /**
     * @param {AVector} v
     */
    distance(v: AVector): number;
    /**
     * @param {AVector} v
     */
    dist(v: AVector): number;
    /**
     * @returns {[number, number, number]}
     */
    toArray(): [number, number, number];
    swizzle(target: any): any;
    calc(arg: any): void;
    clone(): void;
    equals(v: any): boolean;
    toJSON(): {
        x: any;
        y: any;
        z: any;
    };
    toString(): string;
    toCSSVars(name: any, target: any): {};
    set lengthSq(_: number);
    get lengthSq(): number;
    set length(_: number);
    get length(): number;
    set lensq(_: number);
    get lensq(): number;
    set len(_: number);
    get len(): number;
    set x(_: any);
    get x(): any;
    set y(_: any);
    get y(): any;
    set z(_: any);
    get z(): any;
    set xy(_: IPoint);
    get xy(): IPoint;
    set xz(_: IPoint);
    get xz(): IPoint;
    set yz(_: IPoint);
    get yz(): IPoint;
    [Symbol.iterator](): ArrayIterator<any>;
    [AXES]: any[];
}
import { IPoint } from './point';
declare const AXES: unique symbol;
export {};
