import type { Vector2, Vector2Object, Vector3, Vector3Object, Vector4, Vector4Object } from '../../types/vector.js'; type VectorObject = Partial | Partial | Partial; /** Check if value is `Vector2` */ export declare function isVector2(obj: unknown): obj is Vector2; /** Check if value is `Vector3` */ export declare function isVector3(obj: unknown): obj is Vector3; /** Check if value is `Vector4` */ export declare function isVector4(obj: unknown): obj is Vector4; type VectorArgument = Vector2 | Vector3 | Vector4 | number[]; export declare function vectorAdd(vec: T, value?: number | number[]): T; export declare function vectorAdd(vec?: Vector2, value?: VectorObject): Vector2; export declare function vectorAdd(vec?: Vector3, value?: VectorObject): Vector3; export declare function vectorAdd(vec?: Vector4, value?: VectorObject): Vector4; export declare function vectorSub(vec: T, value?: number | number[]): T; export declare function vectorSub(vec?: Vector2, value?: VectorObject): Vector2; export declare function vectorSub(vec?: Vector3, value?: VectorObject): Vector3; export declare function vectorSub(vec?: Vector4, value?: VectorObject): Vector4; export declare function vectorMul(vec: T, value?: number | number[]): T; export declare function vectorMul(vec?: Vector2, value?: VectorObject): Vector2; export declare function vectorMul(vec?: Vector3, value?: VectorObject): Vector3; export declare function vectorMul(vec?: Vector4, value?: VectorObject): Vector4; export declare function vectorDiv(vec: T, value?: number | number[]): T; export declare function vectorDiv(vec?: Vector2, value?: VectorObject): Vector2; export declare function vectorDiv(vec?: Vector3, value?: VectorObject): Vector3; export declare function vectorDiv(vec?: Vector4, value?: VectorObject): Vector4; export declare function lerpVector(alpha: number, vec: T, value?: number[]): T; export declare function lerpVector(valpha: number, ec?: Vector2, value?: VectorObject): Vector2; export declare function lerpVector(alpha: number, vec?: Vector3, value?: VectorObject): Vector3; export declare function lerpVector(alpha: number, vec?: Vector4, value?: VectorObject): Vector4; export declare function vectorDistance(v1: T, v2: T): number; export declare function vectorIsVertical(v1: T, v2: T, epsilon?: number): boolean; export declare function vectorIsHorizontal(v1: T, v2: T, epsilon?: number): boolean; export declare function vectorIsDiagonal(v1: T, v2: T, epsilon?: number): boolean; export declare function vectorMagnitude(vec: number[]): number; export declare function vectorNormalize(vec: T): T; export declare function vectorEqual(v1: T, v2: T): boolean; export declare function vectorNearEqual(v1: T, v2: T, tolerance?: number): boolean; export declare function vectorDot(v1: T, v2: T): number; export declare function vectorCross(v1: Vector3, v2: Vector3): Vector3; export declare function vector2Rotate(v: Vector2, theta: number): Vector2; export declare function vector3RotateX(v: Vector3, theta: number): Vector3; export declare function vector3RotateY(v: Vector3, theta: number): Vector3; export declare function vector3RotateZ(v: Vector3, theta: number): Vector3; export {}; //# sourceMappingURL=vector.d.ts.map