import { Vector3 } from "./Vector3";
export declare class Quaternion {
    private _x;
    private _y;
    private _z;
    private _w;
    constructor(x: number, y: number, z: number, w: number);
    get x(): number;
    set x(value: number);
    get y(): number;
    set y(value: number);
    get z(): number;
    set z(value: number);
    get w(): number;
    set w(value: number);
    /**
     * Creates a quaternion from an axis and angle (in radians).
     * @param axis The axis of rotation.
     * @param angle The angle in radians.
     */
    static fromAxisAngle(axis: Vector3, angle: number): Quaternion;
    /**
     * Creates a quaternion from Euler angles (in radians).
     * @param x Rotation around X axis in radians.
     * @param y Rotation around Y axis in radians.
     * @param z Rotation around Z axis in radians.
     */
    static fromEuler(vector: Vector3): Quaternion;
    static fromEuler(x: number, y: number, z: number): Quaternion;
    static fromLookDirection(forward: Vector3, up: Vector3): Quaternion;
    /**
     * Convert the quaternion to Euler angles (in radians).
     */
    toEuler(): Vector3;
    /**
     * Create a quaternion that represents no rotation.
     */
    static identity(): Quaternion;
    clone(): Quaternion;
    multiply(q: Quaternion): Quaternion;
    multiplySelf(q: Quaternion): Quaternion;
    static slerp(left: Quaternion, right: Quaternion, t: number): Quaternion;
    conjugate(): Quaternion;
    normalize(): Quaternion;
    invert(): Quaternion;
    setValue(value: Quaternion): void;
    toString(): string;
}
