/** * Minimal Vec3 utilities for 3D math. * No external dependencies. */ export type Vec3 = [number, number, number]; /** Create a new Vec3 */ export declare function create(x?: number, y?: number, z?: number): Vec3; /** Clone a Vec3 */ export declare function clone(a: Vec3): Vec3; /** Copy Vec3 a to out */ export declare function copy(out: Vec3, a: Vec3): Vec3; /** Set Vec3 values */ export declare function set(out: Vec3, x: number, y: number, z: number): Vec3; /** Add two Vec3: out = a + b */ export declare function add(out: Vec3, a: Vec3, b: Vec3): Vec3; /** Subtract two Vec3: out = a - b */ export declare function subtract(out: Vec3, a: Vec3, b: Vec3): Vec3; /** Scale Vec3: out = a * scalar */ export declare function scale(out: Vec3, a: Vec3, s: number): Vec3; /** Normalize Vec3 */ export declare function normalize(out: Vec3, a: Vec3): Vec3; /** Dot product of two Vec3 */ export declare function dot(a: Vec3, b: Vec3): number; /** Cross product: out = a × b */ export declare function cross(out: Vec3, a: Vec3, b: Vec3): Vec3; /** Length of Vec3 */ export declare function length(a: Vec3): number; /** Squared length of Vec3 */ export declare function squaredLength(a: Vec3): number; /** Distance between two Vec3 */ export declare function distance(a: Vec3, b: Vec3): number; /** Linear interpolation: out = a + t * (b - a) */ export declare function lerp(out: Vec3, a: Vec3, b: Vec3, t: number): Vec3; /** Negate Vec3: out = -a */ export declare function negate(out: Vec3, a: Vec3): Vec3; /** Transform Vec3 by Mat4 (assumes w=1) */ export declare function transformMat4(out: Vec3, a: Vec3, m: Float32Array): Vec3;