import type { Matrix4 } from "./Matrix4.ts"; import { Vector2 } from "./Vector2.ts"; /** 3x3 matrix for 2D transforms and normal matrices. */ export declare class Matrix3 { #private; constructor(elements?: Float32Array); get elements(): Float32Array; clone(): Matrix3; /** * Composes this matrix from a 2D position, rotation angle, and scale. * @param rotation Angle in radians */ compose(position: Vector2, rotation: number, scale: Vector2): this; /** Copies elements from another Matrix3 into this one. */ copy(m: Matrix3): this; /** Decomposes this matrix into position, rotation, and scale components. */ decompose(position: Vector2, rotation: { angle: number; }, scale: Vector2): this; /** Computes the determinant of this matrix. */ determinant(): number; /** Extracts the translation component into the given Vector2. */ extractPosition(position: Vector2): this; /** Extracts the rotation component from another Matrix3, normalizing by scale. */ extractRotation(m: Matrix3): this; /** Extracts the scale component into the given Vector2. */ extractScale(scale: Vector2): this; /** Sets this to the normal matrix derived from the given Matrix4. */ getNormalMatrix(m: Matrix4): this; /** Resets this matrix to the identity. */ identity(): this; /** * Inverts this matrix in place. * @throws When the matrix is non-invertible (det === 0) */ invert(): this; /** Sets this to a 2D rotation matrix. */ makeRotation(radians: number): this; /** Sets this to a 2D scale matrix. */ makeScale(x: number, y: number): this; /** Sets this to a 2D translation matrix. */ makeTranslation(x: number, y: number): this; /** Post-multiplies this matrix by m. */ mul(m: Matrix3): this; /** Sets this matrix to the product a * b. */ mulMatrices(a: Matrix3, b: Matrix3): this; /** Sets all nine elements directly (row-major argument order). */ set(n11: number, n12: number, n13: number, n21: number, n22: number, n23: number, n31: number, n32: number, n33: number): this; /** Sets this matrix from the upper-left 3x3 of a Matrix4. */ setFromMatrix4(m: Matrix4): this; /** Transposes this matrix in place. */ transpose(): this; /** Iterates over all nine elements in column-major order. */ [Symbol.iterator](): Generator; } //# sourceMappingURL=Matrix3.d.ts.map