import { LengthType, TemperatureType, SpeedType } from '../Types';
export default class UnitConverter {
    private static readonly KILOMETERS_PER_MILE;
    private static readonly FAHRENHEIT_TO_CELSIUS_OFFSET;
    private static readonly KELVIN_TO_CELSIUS_OFFSET;
    private static readonly FAHRENHEIT_TO_CELSIUS_FACTOR;
    private static readonly POUNDS_TO_KILOGRAMS;
    private static readonly TEMPERATURE_MAP;
    private static readonly LENGTH_MAP;
    private static readonly SPEED_MAP;
    /**
     * This function takes a number and adds 273.15 to it.
     * @param {number} val - number - The value to convert
     * @returns The value of the variable val plus the value of the constant KELVIN_TO_CELSIUS_OFFSET.
     */
    static kelvinToCelsius(val: number): number;
    /**
     * Convert a temperature in Celsius to Kelvin.
     * @param {number} val - number - The value to convert.
     * @returns The value of the argument minus 273.15
     */
    static celsiusToKelvin(val: number): number;
    /**
     * Convert a temperature in Fahrenheit to Kelvin by first converting it to Celsius and then to
     * Kelvin.
     * @param {number} val - number - The value to convert
     * @returns The value of the function call.
     */
    static fahrenheitToKelvin(val: number): number;
    /**
     * Convert a temperature in Kelvin to Fahrenheit by first converting it to Celsius and then to
     * Fahrenheit.
     * @param {number} val - number - The value to convert
     * @returns The value of the function call.
     */
    static kelvinToFahrenheit(val: number): number;
    /**
     * Convert a temperature in Celsius to Rankine.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 9/5.
     */
    static celsiusToRankine(val: number): number;
    /**
     * Convert a temperature in Celsius to Delisle.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by -3/2 and added to 100.
     */
    static celsiusToDelisle(val: number): number;
    /**
     * Convert a temperature in Fahrenheit to Rankine.
     * @param {number} val - The value to convert.
     * @returns The value of the argument plus 459.67.
     */
    static fahrenheitToRankine(val: number): number;
    /**
     * Convert a temperature in Fahrenheit to Delisle.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by -3/2 and added to 212.
     */
    static fahrenheitToDelisle(val: number): number;
    /**
     * Convert a temperature in Kelvin to Rankine.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 9/5.
     */
    static kelvinToRankine(val: number): number;
    /**
     * Convert a temperature in Kelvin to Delisle.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 273.15, multiplied by -3/2, and added to 373.15.
     */
    static kelvinToDelisle(val: number): number;
    /**
     * Convert a temperature in Rankine to Celsius.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 459.67.
     */
    static rankineToCelsius(val: number): number;
    /**
     * Convert a temperature in Rankine to Fahrenheit.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 459.67.
     */
    static rankineToFahrenheit(val: number): number;
    /**
     * Convert a temperature in Rankine to Kelvin.
     * @param {number} val - The value to convert.
     * @returns The value of the argument divided by 1.8.
     */
    static rankineToKelvin(val: number): number;
    /**
     * Convert a temperature in Rankine to Delisle.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 491.67, multiplied by -3/2, and added to 100.
     */
    static rankineToDelisle(val: number): number;
    /**
     * Convert a temperature in Delisle to Celsius.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 100, multiplied by -2/3.
     */
    static delisleToCelsius(val: number): number;
    /**
     * Convert a temperature in Delisle to Fahrenheit.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 100, multiplied by -2/3, and added to 212.
     */
    static delisleToFahrenheit(val: number): number;
    /**
     * Convert a temperature in Delisle to Kelvin.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 100, multiplied by -2/3, and added to 373.15.
     */
    static delisleToKelvin(val: number): number;
    /**
     * Convert a temperature in Delisle to Rankine.
     * @param {number} val - The value to convert.
     * @returns The value of the argument minus 100, multiplied by -2/3, and added to 491.67.
     */
    static delisleToRankine(val: number): number;
    /**
     * Convert kilometers to miles.
     * @param {number} kilometers - number
     * @returns The number of miles in the given number of kilometers.
     */
    static kilometersToMiles(kilometers: number): number;
    /**
     * Converts miles to kilometers.
     * @param {number} miles - number - The number of miles to convert to kilometers.
     * @returns The number of kilometers per mile.
     */
    static milesToKilometers(miles: number): number;
    /**
     * Convert a temperature in Celsius to Fahrenheit.
     * @param {number} celsius - number - The temperature in celsius
     * @returns The temperature in Fahrenheit.
     */
    static celsiusToFahrenheit(celsius: number): number;
    /**
     * Convert a temperature in Fahrenheit to Celsius.
     * @param {number} fahrenheit - number - The temperature in Fahrenheit
     * @returns The return value is the result of the calculation.
     */
    static fahrenheitToCelsius(fahrenheit: number): number;
    /**
     * Convert a length in Yards to Miles.
     * @param {number} val - The value to convert.
     * @returns The value of the argument divided by 1760.
     */
    static yardsToMiles(val: number): number;
    /**
     * Convert a length in Yards to Kilometers.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 0.0009144.
     */
    static yardsToKilometers(val: number): number;
    /**
     * Convert a length in Yards to Feet.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 3.
     */
    static yardsToFeet(val: number): number;
    /**
     * Convert a length in Feet to Miles.
     * @param {number} val - The value to convert.
     * @returns The value of the argument divided by 5280.
     */
    static feetToMiles(val: number): number;
    /**
     * Convert a length in Feet to Kilometers.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 0.0003048.
     */
    static feetToKilometers(val: number): number;
    /**
     * Convert a length in Feet to Yards.
     * @param {number} val - The value to convert.
     * @returns The value of the argument divided by 3.
     */
    static feetToYards(val: number): number;
    /**
     * If the conversion is not possible, throws an error, otherwise, returns the result of the
     * conversion.
     *
     * @param {number} value - number - The value to convert
     * @param {UnitType} from - UnitType
     * @param {UnitType} to - UnitType - The unit type to convert to
     * @returns The return value is the result of the conversion
     */
    static convertLenght(value: number, from: LengthType, to: LengthType): number;
    /**
     * Convert a length in Kilometers to Yards.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 1094.
     */
    static kilometersToYards(val: number): number;
    /**
     * Convert a length in Kilometers to Feet.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 3281.
     */
    static kilometersToFeet(val: number): number;
    /**
     * Convert a length in Miles to Yards.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 1760.
     */
    static milesToYards(val: number): number;
    /**
     * Convert a length in Miles to Feet.
     * @param {number} val - The value to convert.
     * @returns The value of the argument multiplied by 5280.
     */
    static milesToFeet(val: number): number;
    /**
     * If the conversion is not possible, throws an error, otherwise, returns the result of the
     * conversion.
     *
     * @param {number} value - number - The value to convert
     * @param {UnitType} from - UnitType
     * @param {UnitType} to - UnitType - The unit type to convert to
     * @returns The return value is the result of the conversion
     */
    static convertTemperature(value: number, from: TemperatureType, to: TemperatureType): number;
    /**
     * If the conversion is not possible, throws an error, otherwise, returns the result of the
     * conversion.
     *
     * @param {number} value - number - The value to convert
     * @param {UnitType} from - UnitType
     * @param {UnitType} to - UnitType - The unit type to convert to
     * @returns The return value is the result of the conversion
     */
    static convertSpeed(value: number, from: SpeedType, to: SpeedType): number;
    /**
     * Converts a speed from kilometers per hour to miles per hour.
     * @param {number} kmPerHour - The speed in kilometers per hour.
     * @returns {number} The speed in miles per hour.
     */
    static kilometersPerHourToMilesPerHour(kmPerHour: number): number;
    /**
     * Converts a speed from miles per hour to kilometers per hour.
     * @param {number} mph - The speed in miles per hour.
     * @returns {number} The speed in kilometers per hour.
     */
    static milesPerHourToKilometersPerHour(mph: number): number;
    /**
     * Converts a weight from kilograms to pounds.
     * @param {number} kilograms - The weight in kilograms.
     * @returns {number} The weight in pounds.
     */
    static kilogramsToPounds(kilograms: number): number;
    /**
     * Converts a weight from pounds to kilograms.
     * @param {number} pounds - The weight in pounds.
     * @returns {number} The weight in kilograms.
     */
    static poundsToKilograms(pounds: number): number;
}
