import { Vector3 } from "./Vector3";
/** Conversion from Deg to Radiant. */
export declare const Deg2Rad: number;
/** Conversion from Radiant to Deg. */
export declare const Rad2Deg: number;
/**
 * clamps input number to min and max
 * @param input value to clamp
 * @param min
 * @param max
 */
export declare function clamp(input: number, min: number, max: number): number;
/** convenience function checks if numbers are close together */
export declare function isCloseTo(first: number, second: number, deviation?: number): boolean;
/**
 * The average of all numbers in the array
 * @param array
 * @returns {number}
 */
export declare function arithmeticMean(array: number[]): number | null;
/**
 * The median value of the given numbers
 * @param array
 * @returns {number}
 */
export declare function median(array: number[]): number | null;
export declare function degToRad(angle: number): number;
export declare function radToDeg(angle: number): number;
/**
 * converts direction vector to azimuth (-180...180) and elevation (-90...90)
 * @param azimuthRad angle from z-axis around y-axis (0 means from front)
 * @param elevationRad angle from z-axis around x-axis (0 means y=0)
 * @param radius radius of polar coordinate (default 1)
 */
export declare function cartToPolarRad(direction: Vector3): {
    azimuth: number;
    elevation: number;
    radius: number;
};
/**
 * converts direction vector to azimuth (-pi...pi) and elevation (-pi/2...pi/2)
 * @param azimuthRad angle from z-axis around y-axis (0 means from front)
 * @param elevationRad angle from z-axis around x-axis (0 means y=0)
 * @param radius radius of polar coordinate (default 1)
 */
export declare function cartToPolarDeg(direction: Vector3): {
    azimuth: number;
    elevation: number;
    radius: number;
};
/**
 * converts azimuth (-pi...pi) and elevation (-pi/2...pi/2) to direction vector
 * @param azimuthRad angle from z-axis around y-axis (0 means from front)
 * @param elevationRad angle from z-axis around x-axis (0 means y=0)
 * @param radius radius of polar coordinate (default 1)
 */
export declare function polarToCartRad(azimuthRad: number, elevationRad: number, radius?: number): Vector3;
/**
 * converts azimuth (-180...180) and elevation (-90...90) to direction vector
 * @param azimuthRad angle from z-axis around y-axis (0 means from front)
 * @param elevationRad angle from z-axis around x-axis (0 means y=0)
 * @param radius radius of polar coordinate (default 1)
 */
export declare function polarToCartDeg(azimuthDeg: number, elevationDeg: number, radius: number): Vector3;
/**
 * Composes a floating point value with the magnitude of x and the sign of y
 * @param x magnitude
 * @param y sign
 */
export declare function copysign(x: number, y: number): number;
