import { EulXYZ } from "./EulXYZ";
import { Matr4, Matr4Data } from "./Matr4";
import { Quat } from "./Quat";
export type IVect3 = {
    x: number;
    y: number;
    z: number;
};
export declare class Vect3 {
    x: number;
    y: number;
    z: number;
    constructor(x?: number | IVect3, y?: number, z?: number);
    copy(other: IVect3): this;
    length(): number;
    lengthSquared(): number;
    clone(): Vect3;
    set(x: number, y: number, z: number): this;
    applyEulerXYZ(euler: EulXYZ): this;
    applyMatrix4(matrix: {
        data: Matr4Data;
    }): this;
    transformDirection(matrix: Matr4): this;
    add(other: IVect3): this;
    sub(other: IVect3): this;
    applyQuat(q: Quat): this;
    multiplyScalar(scalar: number): this;
    normalize(): this;
    addScaledVector(other: Vect3, scalar: number): this;
    distanceTo(other: Vect3): number;
    distanceToSquared(other: Vect3): number;
    applyAxisAngle(axis: IVect3, angle: number): this;
    min(point: IVect3): this;
    max(point: IVect3): this;
    subVectors(a: IVect3, b: IVect3): this;
    dot(v: IVect3): number;
    cross(other: Vect3): this;
    crossVectors(a: Vect3, b: Vect3): this;
    subScalar(s: number): this;
    addScalar(s: number): this;
    multiply(other: IVect3): this;
    lerp(target: IVect3, alpha: number): Vect3;
    lerpVectors(v1: IVect3, v2: IVect3, alpha: number): Vect3;
    toArray(): number[];
}
