import { Quaternion } from "./Quaternion.js";
import { Vector3 } from "./Vector3.js";
import { Vector4 } from "./Vector4.js";
export declare class Matrix4 {
    readonly elements: readonly [
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number
    ];
    constructor(elements?: Matrix4["elements"]);
    static identity(): Matrix4;
    static translation(v: Vector3): Matrix4;
    static scaling(v: Vector3): Matrix4;
    static rotation(q: Quaternion): Matrix4;
    static compose(position: Vector3, rotation: Quaternion, scale: Vector3): Matrix4;
    static perspective(fovYRadians: number, aspect: number, near: number, far: number): Matrix4;
    static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
    static lookAt(eye: Vector3, target: Vector3, up: Vector3): Matrix4;
    multiply(other: Matrix4): Matrix4;
    transformPoint(v: Vector3): Vector3;
    transformVector4(v: Vector4): Vector4;
    transpose(): Matrix4;
    determinant(): number;
    inverse(): Matrix4;
    decompose(): {
        position: Vector3;
        rotation: Quaternion;
        scale: Vector3;
    };
    getTranslation(): Vector3;
}
//# sourceMappingURL=Matrix4.d.ts.map