import { Quaternion } from './Quaternion';
import { V2 } from './V2';
import { V3 } from './V3';
export declare const add: (a: V3, b: V3) => V3;
export declare const sum: (vectors: V3[]) => V3;
/**
 * @returns a - b
 */
export declare const subtract: (base: V3, subtraction: V3) => V3;
/**
 * @returns element-wise multiplication of base and multiplier
 */
export declare const multiply: (base: V3, multiplier: V3) => V3;
/**
 * @returns a / b
 */
export declare const divide: (base: V3, divisor: V3) => V3;
export declare const scale: (base: V3, factor: number) => V3;
export declare const sign: (vector: V3) => V3;
export declare const normalise: (vector: V3) => V3;
export declare const extractXY: (vector: V3) => V2;
export declare const extractXZ: (vector: V3) => V2;
export declare const extractYZ: (vector: V3) => V2;
export declare const sqrEuclideanLength: (vector: V3) => number;
export declare const manhattanLength: (vector: V3) => number;
export declare const dotProduct: (a: V3, b: V3) => number;
export declare const crossProduct: (a: V3, b: V3) => V3;
export declare const euclideanLength: (vector: V3) => number;
export declare const sqrEuclideanDistance: (a: V3, b: V3) => number;
export declare const euclideanDistance: (a: V3, b: V3) => number;
export declare const lerp: (from: V3, to: V3, amount: number) => V3;
export declare const lerpTheta: (from: V3, to: V3, amount: number) => V3;
export declare const up: () => V3;
export declare const down: () => V3;
export declare const right: () => V3;
export declare const left: () => V3;
export declare const forwards: () => V3;
export declare const back: () => V3;
export declare const zero: () => V3;
export declare const copy: (vector: V3) => V3;
export declare const flipX: (vector: V3) => V3;
export declare const flipY: (vector: V3) => V3;
export declare const flipZ: (vector: V3) => V3;
export declare const clamp: (vector: V3, min: V3, max: V3) => V3;
export declare const random: () => V3;
export declare const randomRange: (min: number, max: number) => V3;
export declare const fromArray: (array: number[]) => V3;
export declare const fromVector3: (vector: {
    x: number;
    y: number;
    z: number;
}) => V3;
export declare const rotate: (vector: V3, rotation: Quaternion) => V3;
export declare const fromPolar: (radius: number, angle: Quaternion) => V3;
export declare const toPolar: (vector: V3) => [radius: number, angle: Quaternion];
