import type { Vector2, Vector2Tuple } from "three/src/Three"; export type ReadonlyVector2 = { /** * @default 0 */ readonly x: number; /** * @default 0 */ readonly y: number; readonly width: number; readonly height: number; readonly isVector2: true; /** * Gets a component of this vector. */ getComponent(index: number): number; /** * Returns a new Vector2 instance with the same `x` and `y` values. */ clone(): Vector2; /** * Computes dot product of this vector and v. */ dot(v: ReadonlyVector2): number; /** * Computes cross product of this vector and v. */ cross(v: ReadonlyVector2): number; /** * Computes squared length of this vector. */ lengthSq(): number; /** * Computes length of this vector. */ length(): number; /** * Computes the Manhattan length of this vector. * * see {@link http://en.wikipedia.org/wiki/Taxicab_geometry|Wikipedia: Taxicab Geometry} */ manhattanLength(): number; /** * computes the angle in radians with respect to the positive x-axis */ angle(): number; /** * Computes distance of this vector to v. */ distanceTo(v: ReadonlyVector2): number; /** * Computes squared distance of this vector to v. */ distanceToSquared(v: ReadonlyVector2): number; /** * Computes the Manhattan length (distance) from this vector to the given vector v * * see {@link http://en.wikipedia.org/wiki/Taxicab_geometry|Wikipedia: Taxicab Geometry} */ manhattanDistanceTo(v: ReadonlyVector2): number; /** * Checks for strict equality of this vector and v. */ equals(v: ReadonlyVector2): boolean; /** * Returns an array [x, y], or copies x and y into the provided array. * @param array (optional) array to store the vector 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[]; toArray(array?: Vector2Tuple, offset?: 0): Vector2Tuple; /** * Copies x and y into the provided array-like. * @param array array-like to store the vector to. * @param offset (optional) optional offset into the array. * @return The provided array-like. */ toArray(array: ArrayLike, offset?: number): ArrayLike; };