import { Quat } from "./Quat";
import { Vect3 } from "./Vect3";
export type Matr4Data = [
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number
];
export declare class Matr4 {
    static tempMatr4: Matr4;
    static tempVect3: Vect3;
    static tempQuat: Quat;
    data: Matr4Data;
    constructor(data?: Matr4Data | Matr4 | Float32Array | Array<number>);
    identity(): this;
    copy(m: Matr4): Matr4;
    set(...args: Matr4Data | [Float32Array] | [Matr4Data] | [Array<number>]): this;
    setRotationFromQuaternion(q: {
        x: number;
        y: number;
        z: number;
        w: number;
    }): this;
    clone(): Matr4;
    determinant(): number;
    makeRotationX(theta: number): this;
    makeRotationY(theta: number): this;
    makeRotationZ(theta: number): this;
    makeTranslation(x: number, y: number, z: number): this;
    makeScale(x: number, y: number, z: number): this;
    compose(position: {
        x: number;
        y: number;
        z: number;
    }, quaternion: {
        x: number;
        y: number;
        z: number;
        w: number;
    }, scale: {
        x: number;
        y: number;
        z: number;
    }): this;
    decompose(position: {
        x: number;
        y: number;
        z: number;
    }, quaternion: {
        x: number;
        y: number;
        z: number;
        w: number;
    }, scale: {
        x: number;
        y: number;
        z: number;
    }): this;
    multiply(m: Matr4): this;
    premultiply(m: Matr4): this;
    multiplyMatrices(a: Matr4, b: Matr4): this;
    invert(): this;
    equals(other: Matr4): boolean;
    setPosition(x: number, y: number, z: number): this;
}
