import { IEulerAngle } from "../euler/IEulerAngle"; import { Vector3, Vector3Like } from "../vector/Vector3"; import { Matrix3Like } from "./Matrix3"; import { Plane3 } from "../shape/Plane3"; import { QuaternionLike } from "../quaternion"; export type Matrix4Like = Matrix4 | Float32Array | number[]; export declare class Matrix4 extends Float32Array { static readonly UNIT_MATRIX4: Matrix4; static clone: (source: Matrix4Like, out?: T) => T; static create: () => Matrix4; static determinant: (a: Matrix4Like) => number; static fromArray: (source: Matrix4Like, out?: T) => T; static fromEuler: (euler: IEulerAngle, out?: T) => T; static fromMatrix3: (data: Matrix3Like, out?: T) => T; static fromMatrix3MVP: (data: Matrix3Like, out?: T) => T; static fromQuaternion: (q: QuaternionLike, out?: T) => T; static fromReflectPlane: (plane: Plane3, out?: T) => T; static fromRotation: (rad: number, axis: Vector3Like, out?: T) => T | null; static fromRotationX: (rad: number, out?: T) => T; static fromRotationY: (rad: number, out?: T) => T; static fromRotationZ: (rad: number, out?: T) => T; static fromScaling: (v: Vector3Like, out?: T) => T; static fromTranslation: (v: Vector3Like, out?: T) => T; static identity: (out?: T) => T; static invert: (a: Matrix4Like, out?: T) => T | null; static lookAt: (eye: Vector3Like, center: Vector3Like, up?: Vector3Like, out?: T) => T; static multiply: (a: Matrix4Like, b: Matrix4Like, out?: T) => T; static multiplyScaleMatrix: (a: Matrix4Like, b: Matrix4Like, out?: T) => T; static multiplyTranslateMatrix: (a: Matrix4Like, b: Matrix4Like, out?: T) => T; static orthogonal: (left: number, right: number, bottom: number, top: number, near: number, far: number, out?: T) => T; static orthogonalZ0: (left: number, right: number, bottom: number, top: number, near: number, far: number, out?: T) => T; static perspective: (fovy: number, aspect: number, near: number, far: number, out?: T) => T; static perspectiveZ0: (fovy: number, aspect: number, near: number, far: number, out?: T) => T; static rotate: (a: Matrix4Like, rad: number, axis: Vector3Like, out?: T) => T | null; static rotateX: (a: Matrix4Like, rad: number, out?: T) => T; static rotateY: (a: Matrix4Like, rad: number, out?: T) => T; static rotateZ: (a: Matrix4Like, rad: number, out?: T) => T; static scale: (a: Matrix4Like, v: Vector3Like, out?: T) => T; static targetTo: (eye: Vector3Like, target: Vector3Like, up?: Vector3Like, out?: T) => T; static translate: (a: Matrix4Like, v: Vector3Like, out?: T) => T; static transpose: (a: Matrix4Like, out?: T) => T; static unproject: (vec3: Vector3Like, projectionMatrix: Matrix4Like, worldMatrix: Matrix4Like, out?: T) => T; constructor(data?: Matrix4Like); }