import { Quaternion } from './Quaternion'; import type { Euler } from './Euler'; import type { Matrix3 } from './Matrix3'; import type { Matrix4 } from './Matrix4'; import type { Spherical } from './Spherical'; import type { Cylindrical } from './Cylindrical'; declare class Vector3 { readonly isVector3 = true; x: number; y: number; z: number; constructor(x?: number, y?: number, z?: number); set(x: number, y: number, z?: number): this; setScalar(scalar: number): this; setX(x: number): this; setY(y: number): this; setZ(z: number): this; setComponent(index: number, value: number): this; getComponent(index: number): number; clone(): Vector3; copy(v: Vector3): this; add(v: Vector3, w?: Vector3): this; addScalar(s: number): this; addVectors(a: Vector3, b: Vector3): this; addScaledVector(v: Vector3, s: number): this; sub(v: Vector3, w?: Vector3): this; subScalar(s: number): this; subVectors(a: Vector3, b: Vector3): this; multiply(v: Vector3, w?: Vector3): this; multiplyScalar(scalar: number): this; multiplyVectors(a: Vector3, b: Vector3): this; applyEuler(euler: Euler): this; applyAxisAngle(axis: Vector3, angle: number): this; applyMatrix3(m: Matrix3): this; applyNormalMatrix(m: Matrix3): this; applyMatrix4(m: Matrix4): this; applyQuaternion(q: Quaternion): this; transformDirection(m: Matrix4): this; divide(v: Vector3): this; divideScalar(scalar: number): this; min(v: Vector3): this; max(v: Vector3): this; clamp(min: Vector3, max: Vector3): this; clampScalar(minVal: number, maxVal: number): this; clampLength(min: number, max: number): this; floor(): this; ceil(): this; round(): this; roundToZero(): this; negate(): this; dot(v: Vector3): number; lengthSq(): number; length(): number; manhattanLength(): number; normalize(): this; setLength(length: number): this; lerp(v: Vector3, alpha: number): this; lerpVectors(v1: Vector3, v2: Vector3, alpha: number): this; cross(v: Vector3, w?: Vector3): this; crossVectors(a: Vector3, b: Vector3): this; projectOnVector(v: Vector3): this; projectOnPlane(planeNormal: Vector3): this; reflect(normal: Vector3): this; angleTo(v: Vector3): number; distanceTo(v: Vector3): number; distanceToSquared(v: Vector3): number; manhattanDistanceTo(v: Vector3): number; setFromSpherical(s: Spherical): this; setFromSphericalCoords(radius: number, phi: number, theta: number): this; setFromCylindrical(c: Cylindrical): this; setFromCylindricalCoords(radius: number, theta: number, y: number): this; setFromMatrixPosition(m: Matrix4): this; setFromMatrixScale(m: Matrix4): this; setFromMatrixColumn(m: Matrix4, index: number): this; setFromMatrix3Column(m: Matrix3, index: number): this; equals(v: Vector3): boolean; fromArray(array: number[], offset?: number): this; toArray(array?: number[], offset?: number): number[]; random(): this; } export { Vector3 };