import { Point3D } from './Point3D'; export declare class Vector3D extends Point3D { constructor(x?: number, y?: number, z?: number); static negative(a: Vector3D, b: Vector3D): Vector3D; static add(a: Vector3D, b: Vector3D | number, c?: Vector3D): Vector3D; static subtract(a: Vector3D, b: Vector3D | number, c?: Vector3D): Vector3D; static multiply(a: Vector3D, b: Vector3D | number, c?: Vector3D): Vector3D; static divide(a: Vector3D, b: Vector3D | number, c?: Vector3D): Vector3D; static cross(a: Vector3D, b: Vector3D, c?: Vector3D): Vector3D; static unit(a: Vector3D, b: Vector3D): Vector3D; static fromBearing(angle: number, length: number): Vector3D; static fromAngles(theta: number, phi: number): Vector3D; static randomDirection(): Vector3D; static min(a: Vector3D, b: Vector3D): Vector3D; static max(a: Vector3D, b: Vector3D): Vector3D; static lerp(a: Vector3D, b: Vector3D, fraction: number): Vector3D; static fromArray(a: number[]): Vector3D; static angleBetween(a: Vector3D, b: Vector3D): number; negative(): Vector3D; add(v: Vector3D | number): Vector3D; subtract(v: Vector3D | number): Vector3D; multiply(v: Vector3D | number): Vector3D; divide(v: Vector3D | number): Vector3D; equals(v: Vector3D): boolean; dot(v: Vector3D): number; cross(v: Vector3D): Vector3D; magnitude(): number; length(): number; unit(): Vector3D; min(): number; max(): number; toAngles(): { theta: number; phi: number; }; angleTo(a: Vector3D): number; areaOfTriangle(a: Vector3D): number; volumeOfVectors(a: Vector3D, b: Vector3D): number; toArray(n?: number): number[]; clone(): Vector3D; private init; }