import type { Tuple } from "@dunes/tools"; import { Vec3, type VecData } from "../vec/index.js"; export type MatData = Tuple, Dim>; export type Mat2Data = MatData<2>; export type Mat3Data = MatData<3>; export type Mat4Data = MatData<4>; declare class Mat { readonly dim: Dim; protected array: MatData; constructor(dim: Dim, init?: number); null(): this; identity(): this; [Symbol.iterator](): Iterator; data(): MatData; get(row: number, col: number): number; setAt(row: number, col: number, value: number): this; set(mat: MatData): this; multiply(other: Mat): this; toFloat32Array(): Float32Array; } export declare class Mat4 extends Mat<4> { constructor(init: number); constructor(mat: Mat4Data); static translation(position: Vec3): Mat4; static scale(scale: Vec3): Mat4; static rotation(angle: number, axis: Vec3): Mat4; static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4; static perspective(fovDeg: number, aspect: number, near: number, far: number): Mat4; } export {}; //# sourceMappingURL=index.d.ts.map