import type { IPolar } from "../polar"; import type { Matrix3Like } from "../matrix/Matrix3"; export interface IVector2Json { x: number; y: number; } export interface IVector2 extends Float32Array, IVector2Json { } export type Vector2Like = IVector2 | Vector2 | number[] | Float32Array; export declare class Vector2 extends Float32Array implements IVector2 { static readonly VECTOR2_ZERO: Vector2; static readonly VECTOR2_TOP: Vector2; static readonly VECTOR2_BOTTOM: Vector2; static readonly VECTOR2_LEFT: Vector2; static readonly VECTOR2_RIGHT: Vector2; static readonly VECTOR2_ONE: Vector2; static add: (a: Vector2Like, b: Vector2Like, out?: T) => T; static addScalar: (a: Vector2Like, b: number, out?: T) => T; static angle: (a: Vector2Like) => number; static area: (a: Vector2Like) => number; static ceil: (a: Vector2Like, out?: T) => T; static clamp: (a: Vector2Like, min: Vector2Like, max: Vector2Like, out?: T) => T; static clampSafe: (a: Vector2Like, min: Vector2Like, max: Vector2Like, out?: T) => T; static clampLength: (a: Vector2Like, min: Vector2Like, max: Vector2Like, out?: T) => T; static clampScalar: (a: Vector2Like, min: number, max: number, out?: T) => T; static closeTo: (a: Vector2Like, b: Vector2Like, epsilon?: number) => boolean; static closeToRect: (a: Vector2Like, b: Vector2Like, epsilon?: number) => boolean; static closeToManhattan: (a: Vector2Like, b: Vector2Like, epsilon?: number) => boolean; static clone: (a: Vector2Like, out?: T) => T; static cross: (a: Vector2Like, b: Vector2Like) => number; static create: (x?: number, y?: number) => Vector2; static distanceTo: (a: Vector2Like, b: Vector2Like) => number; static distanceToManhattan: (a: Vector2Like, b: Vector2Like) => number; static distanceToSquared: (a: Vector2Like, b: Vector2Like) => number; static divide: (a: Vector2Like, b: Vector2Like, out?: T) => T; static divideScalar: (a: Vector2Like, scalar: number, out?: T) => T; static dot: (a: Vector2Like, b: Vector2Like) => number; static equals: (a: Vector2Like, b: Vector2Like) => boolean; static floor: (a: Vector2Like, out?: T) => T; static floorToZero: (a: Vector2Like, out?: T) => T; static fromArray: (arr: Vector2Like, index?: number, out?: T) => T; static fromJson: (j: IVector2Json, out?: T) => T; static fromPolar: (p: IPolar, out?: T) => T; static fromPointerEvent: (e: PointerEvent, out?: T) => T; static fromScalar: (value?: number, out?: T) => T; static fromXY: (x: number, y: number, out?: T) => T; static inverse: (a: Vector2Like, out?: T) => T; static norm: (a: Vector2Like) => number; static lengthManhattan: (a: Vector2Like) => number; static lengthSquared: (a: Vector2Like) => number; static lerp: (a: Vector2Like, b: Vector2Like, alpha: number, out?: T) => T; static max: (a: Vector2Like, b: Vector2Like, out?: T) => T; static min: (a: Vector2Like, b: Vector2Like, out?: T) => T; static minus: (a: Vector2Like, b: Vector2Like, out?: T) => T; static minusScalar: (a: Vector2Like, num: number, out?: T) => T; static multiply: (a: Vector2Like, b: Vector2Like, out?: T) => T; static multiplyScalar: (a: Vector2Like, scalar: number, out?: T) => T; static negate: (a: Vector2Like, out?: T) => T; static normalize: (a: Vector2Like, out?: T) => T; static opposite: (a: Vector2Like, center: Vector2Like, out?: T) => T; static random: (norm?: number, out?: T) => T; static reflect: (origin: Vector2Like, normal: Vector2Like, out?: T) => T; static rotate: (a: Vector2Like, angle: number, center?: Vector2Like, out?: T) => T; static round: (a: Vector2Like, out?: T) => T; static setNorm: (a: Vector2Like, norm: number, out?: T) => T; static toArray: (a: Vector2Like, arr?: number[]) => number[]; static toPalorJson: (a: Vector2Like, p?: { a: number; r: number; }) => IPolar; static toString: (a: Vector2Like) => string; static transformDirection: (a: Vector2Like, m: Matrix3Like, out?: T) => T; static transformMatrix3: (a: Vector2Like, m: Float32Array | number[], out?: T) => T; readonly dataType: string; constructor(x?: number, y?: number); get x(): number; set x(value: number); get y(): number; set y(value: number); }