/**
 * Converts degrees to radians.
 *
 * @param deg
 * @returns radians
 */
export declare const degToRad: (deg: number) => number;
/**
 * Converts radians to degrees.
 *
 * @param deg
 * @returns degrees
 */
export declare const radToDeg: (rad: number) => number;
export interface Quaternion {
    x: number;
    y: number;
    z: number;
    w: number;
}
/**
 *
 * @param x
 * @param y
 * @param z
 * @param w
 * @returns {Quaternion}
 */
export declare const makeQuaternion: (x: number, y: number, z: number, w: number) => Quaternion;
/**
 * Returns all-fields 0-ed quaternion.
 *
 * @returns {Quaternion}
 */
export declare const zeroQuaternion: () => Quaternion;
/**
 *
 * @param quaternion
 */
export declare function inverseQuaternion(quaternion: Quaternion): Quaternion;
/**
 *
 * @param quaternion
 */
export declare function conjugateQuaternion(quaternion: Quaternion): Quaternion;
/**
 * Generates quaternion based on Euler angles (in radians).
 *
 * @param alpha     around Z axis
 * @param beta      around X axis
 * @param gamma     around Y axis
 * @returns {Quaternion}
 */
export declare function computeQuaternionFromEulers(alpha: number, beta: number, gamma: number, radians?: boolean): Quaternion;
/**
 *
 * @param x
 * @param y
 * @param z
 * @param angle
 */
export declare function quaternionFromAxisAngle(x: number, y: number, z: number, angle: number): Quaternion;
/**
 *
 * @param quaternionArray
 */
export declare function quaternionMultiply(quaternionArray: Quaternion[]): Quaternion;
/**
 *
 * @param pointRotate
 * @param quaternion
 */
export declare function rotatePointViaQuaternion(pointRotate: [number, number, number], quaternion: Quaternion): Quaternion;
/**
 *
 * @param quaternion
 */
export declare function makeRotationMatrixFromQuaternion(quaternion: Quaternion): number[];
