type FixedLengthArray]> = PassedObject & { readonly length: L; [I: number]: T; }; export type AffineMatrix = FixedLengthArray, 4>; export type AffineMatrixFlat = FixedLengthArray; type TransformMatrixDecomposition = Record<'translationMatrix' | 'scaleMatrix' | 'rotationMatrix' | 'skewMatrix', AffineMatrix>; type Axis = 'x' | 'y' | 'z'; interface TransformMatrixDecompositionWithAngles extends TransformMatrixDecomposition { rx: number; ry: number; rz: number; } export declare function isAffineMatrixFlat(x: unknown): x is AffineMatrixFlat; export declare function isAffineMatrix(x: unknown): x is AffineMatrix; export declare function flatten(matrix: AffineMatrix): AffineMatrixFlat; export declare function unflatten(m: AffineMatrixFlat): AffineMatrix; export declare function multiplyMatrices(a: AffineMatrix, b: AffineMatrix): AffineMatrix; export declare function subtractMatrices(maybeFlatA: T, maybeFlatB: T): T; export declare function addMatrices(maybeFlatA: T, maybeFlatB: T): T; export declare function scaleMatrix(maybeFlatA: T, scalar: number): T; export declare function getRotationMatrix(angle: number, axis?: Axis): AffineMatrix; export declare function decomposeMatrix(unknownTypeMatrix: AffineMatrixFlat | AffineMatrix): TransformMatrixDecomposition; export declare function decomposeMatrixIntoMatricesAndAngles(matrix: AffineMatrixFlat | AffineMatrix): TransformMatrixDecompositionWithAngles; export {}; //# sourceMappingURL=matrixUtils.d.ts.map