import { ZograMatrix } from "./generic"; export declare type quat = Quaternion; declare const V4Constructor: new (...p: [number, number, number, number]) => [number, number, number, number]; export declare class Quaternion extends V4Constructor implements ZograMatrix { static create(): Quaternion; asMut(): this; equals(v: any): boolean; clone(out?: Quaternion): Quaternion; set(value: Readonly): this; set(value: Readonly>): this; fill(value: number): this; } export declare function quat(v?: number): Quaternion; export declare namespace quat { var create: () => Quaternion; var identity: { (): Quaternion; (out: Quaternion): Quaternion; (out: Quaternion): Quaternion; (): Quaternion; (out: ArrayLike): ArrayLike; }; var axisAngle: { (args_0: Readonly, args_1: number): Quaternion; (out: Quaternion, args_0: Readonly, args_1: number): Quaternion; (out: Quaternion, args_0: ArrayLike, args_1: number): Quaternion; (args_0: ArrayLike, args_1: number): Quaternion; (out: ArrayLike, args_0: ArrayLike, args_1: number): ArrayLike; }; var mul: { (args_0: Readonly, args_1: Readonly): Quaternion; (out: Quaternion, args_0: Readonly, args_1: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike, args_1: ArrayLike): Quaternion; (args_0: ArrayLike, args_1: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike, args_1: ArrayLike): ArrayLike; }; var invert: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var normalize: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var euler: { (args_0: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: ArrayLike): import("./vec3").Vector3; (args_0: ArrayLike): import("./vec3").Vector3; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var fromEuler: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var rotate: { (args_0: Readonly, args_1: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: Readonly, args_1: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: ArrayLike, args_1: ArrayLike): import("./vec3").Vector3; (args_0: ArrayLike, args_1: ArrayLike): import("./vec3").Vector3; (out: ArrayLike, args_0: ArrayLike, args_1: ArrayLike): ArrayLike; }; var equals: (a: any, b: any) => boolean; } export declare function quat(x: number, y: number, z: number, w: number): Quaternion; export declare namespace quat { var create: () => Quaternion; var identity: { (): Quaternion; (out: Quaternion): Quaternion; (out: Quaternion): Quaternion; (): Quaternion; (out: ArrayLike): ArrayLike; }; var axisAngle: { (args_0: Readonly, args_1: number): Quaternion; (out: Quaternion, args_0: Readonly, args_1: number): Quaternion; (out: Quaternion, args_0: ArrayLike, args_1: number): Quaternion; (args_0: ArrayLike, args_1: number): Quaternion; (out: ArrayLike, args_0: ArrayLike, args_1: number): ArrayLike; }; var mul: { (args_0: Readonly, args_1: Readonly): Quaternion; (out: Quaternion, args_0: Readonly, args_1: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike, args_1: ArrayLike): Quaternion; (args_0: ArrayLike, args_1: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike, args_1: ArrayLike): ArrayLike; }; var invert: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var normalize: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var euler: { (args_0: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: ArrayLike): import("./vec3").Vector3; (args_0: ArrayLike): import("./vec3").Vector3; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var fromEuler: { (args_0: Readonly): Quaternion; (out: Quaternion, args_0: Readonly): Quaternion; (out: Quaternion, args_0: ArrayLike): Quaternion; (args_0: ArrayLike): Quaternion; (out: ArrayLike, args_0: ArrayLike): ArrayLike; }; var rotate: { (args_0: Readonly, args_1: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: Readonly, args_1: Readonly): import("./vec3").Vector3; (out: import("./vec3").Vector3, args_0: ArrayLike, args_1: ArrayLike): import("./vec3").Vector3; (args_0: ArrayLike, args_1: ArrayLike): import("./vec3").Vector3; (out: ArrayLike, args_0: ArrayLike, args_1: ArrayLike): ArrayLike; }; var equals: (a: any, b: any) => boolean; } export {};