import type { Quaternion } from "three/src/Three"; export type ReadonlyQuaternion = { /** * @default 0 */ readonly x: number; /** * @default 0 */ readonly y: number; /** * @default 0 */ readonly z: number; /** * @default 1 */ readonly w: number; readonly isQuaternion: true; /** * Clones this quaternion. */ clone(): Quaternion; angleTo(q: ReadonlyQuaternion): number; dot(v: ReadonlyQuaternion): number; lengthSq(): number; /** * Computes length of this quaternion. */ length(): number; equals(v: ReadonlyQuaternion): boolean; /** * Returns an array [x, y, z, w], or copies x, y, z and w into the provided array. * @param array (optional) array to store the quaternion to. If this is not provided, a new array will be created. * @param offset (optional) optional offset into the array. * @return The created or provided array. */ toArray(array?: number[], offset?: number): number[]; /** * Copies x, y, z and w into the provided array-like. * @param array array-like to store the quaternion to. * @param offset (optional) optional offset into the array. * @return The provided array-like. */ toArray(array: ArrayLike, offset?: number): ArrayLike; /** * This method defines the serialization result of Quaternion. * @return The numerical elements of this quaternion in an array of format [x, y, z, w]. */ toJSON(): [number, number, number, number]; };