import { Matrix4, Quaternion, Vector3 } from "@aura3d/math";
export type Vec3 = [number, number, number];
export type Quat = [number, number, number, number];
export type Mat4 = [
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number,
    number
];
export type PlaneTuple = [number, number, number, number];
export declare const EPSILON = 1e-8;
export declare function vec3(x?: number, y?: number, z?: number): Vec3;
export declare function quat(x?: number, y?: number, z?: number, w?: number): Quat;
export declare function identityMat4(): Mat4;
export declare function cloneMat4(value: Mat4): Mat4;
export declare function addVec3(a: Vec3, b: Vec3): Vec3;
export declare function subVec3(a: Vec3, b: Vec3): Vec3;
export declare function scaleVec3(a: Vec3, scalar: number): Vec3;
export declare function lengthVec3(a: Vec3): number;
export declare function normalizeVec3(a: Vec3): Vec3;
export declare function normalizeQuat(value: Quat): Quat;
export declare function quatFromEuler(x: number, y: number, z: number): Quat;
export declare function multiplyMat4(a: Mat4, b: Mat4): Mat4;
export declare function composeMat4(position: Vec3, rotation: Quat, scale: Vec3): Mat4;
export declare function transformPoint(matrix: Mat4, point: Vec3): Vec3;
export declare function invertMat4(matrix: Mat4): Mat4;
export declare function perspectiveMat4(fovYRadians: number, aspect: number, near: number, far: number): Mat4;
export declare function orthographicMat4(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
export declare function extractFrustumPlanes(viewProjection: Mat4): PlaneTuple[];
export declare function toMathVec3(value: Vec3): Vector3;
export declare function toMathQuat(value: Quat): Quaternion;
export declare function toMathMat4(value: Mat4): Matrix4;
export declare function fromMathMat4(value: Matrix4): Mat4;
export declare function fromMathQuat(value: Quaternion): Quat;
export declare function decomposeMat4(matrix: Mat4): {
    position: Vec3;
    rotation: Quat;
    scale: Vec3;
};
//# sourceMappingURL=MathTypes.d.ts.map