import { Reading } from '../common';
export interface IValuationSet {
    a: number;
    b: number;
    c: number;
    d: number;
}
/**
 *
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} humidity Humidity in RH (Relative Humidity)
 * @param {IValuationSet} valuationSet The valuation set to use in the calculation
 * @returns {number} Dew Point in Kelvin
 */
declare function dewPointMagnusFormula(temperature: number, humidity: number, valuationSet?: IValuationSet): number;
/**
 *
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} humidity Humidity in RH (Relative Humidity)
 * @param {IValuationSet} valuationSet The valuation set to use in the calculation
 * @returns {number} Dew Point in Kelvin
 */
declare function dewPointArdenBuckEquation(temperature: number, humidity: number, valuationSet?: IValuationSet): number;
/**
 * Calculate Potential Temperature
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} pressure Pressure in Pa (Pascal)
 * @returns {number} Potential Temperature in K (Kelvin)
 */
declare function potentialTemperature(temperature: number, pressure: number): number;
/**
 * Calculate Virtual Temperature
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} mixingRatio Mixing Ratio in g/kg (grams per kilogram)
 * @returns {number} Virtual Temperature in K (Kelvin)
 */
declare function virtualTemperature(temperature: number, mixingRatio: number): number;
/**
 *
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} windSpeed Windspeed in M/S (meter per second)
 * @returns {number} Wind Chill Index in Kelvin
 */
declare function windChillIndex(temperature: number, windSpeed: number): number;
/**
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} humidity Humidity in RH (Relative Humidity)
 * @param {number} windspeed Windspeed in M/S (meter per second)
 * @returns {number} Apparent Temperature in Kelvin
 */
declare function australianAapparentTemperature(temperature: number, humidity: number, windspeed: number): number;
/**
 *
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} humidity Humidity in RH (Relative Humidity)
 * @returns {number} Heat Index in Kelvin
 */
declare function heatIndex(temperature: number, humidity: number): number;
/**
 *
 * @param {number} heatIndexTemperature Temperature in K (Kelvin)
 * @returns {string} Heat Index Warning
 */
declare function heatIndexText(heatIndexTemperature: number): null | {
    lowerLimit: number;
    text: string;
    warning: string;
};
/**
 * Gets the Humidex temperature
 * @param {number} temperature Temperature in K (Kelvin)
 * @param {number} humidity Humidity in RH (Relative Humidity)
 * @returns {number} Humidex in Kelvin
 */
declare function humidex(temperature: number, humidity: number): number;
/**
 * Gets the Humidex test warning
 * @param {number} humidex Temperature in K (Kelvin)
 * @returns {string} Humidex Warning
 */
declare function humidexText(humidex: number): null | {
    lowerLimit: number;
    text: string;
};
/**
 * Calculate the lapse rate
 * @param altitude1 Lower or higher altitude 1
 * @param T1 Temperature at altitude 1
 * @param altitude2 Lower or higher altitude 2
 * @param T2 Temperature at altitude 2
 * @returns Lapse rate
 */
declare function calculateLapseRate(altitude1: number, T1: number, altitude2: number, T2: number): number;
/**
 * Calculate dynamic lapse rate based on a range of altitude and temperature data
 * @param readings Readings data
 * @param hours Number of hours to read
 * @param filterByLastReading Filter by the datetime in the most recent reading
 * @returns Dynamic lapse rate, or default.
 */
declare function calculateDynamicLapseRate(readings: Reading[], hours?: number, filterByLastReading?: boolean): number;
/**
 *
 * @param readings Readings data
 * @param hours Hours to filter
 * @returns Weighted average temperature
 */
declare function calculateWeightedAverageTemperature(readings: Reading[], hours?: number): number;
/**
 *
 * @param altitude1 Lower or higher altitude 1
 * @param T1 Temperature at altitude 1
 * @param altitude2 Lower og higher altitude 2
 * @param T2 Temperature at altitude 2
 * @returns True if inversion is detected
 */
declare function isTemperatureInversion(altitude1: number, T1: number, altitude2: number, T2: number): boolean;
/**
 * Adjust pressure to sea level by fixed lapse ratio.
 * @param {number} altitude altitude in meters.
 * @param {number} temperature temperature at altitude in Celcius|Kelvin|Fahrenheit.
 * @param {number} lapseRate Custom lapse rate. Defaults to standard lapse rate.
 * @returns Adjusted pressure
 */
declare function adjustTemperatureByLapseRate(altitude: number, temperature: number, lapseRate?: number): number;
/**
 * Convert Kelvin to Celcius
 * @param {number} temperature Temperature in K (Kelvin)
 * @returns {number} Celcius
 */
declare function kelvinToCelcius(temperature: number): number;
/**
 * Convert Celcius to Kelvin
 * @param {number} temperature Temperature in C (Celcius)
 * @returns {number} Kelvin
 */
declare function celciusToKelvin(temperature: number): number;
/**
 *
 * @param celcius Celcius degrees
 * @returns Fahrenheit degrees
 */
declare function celciusToFahrenheit(celcius: number): number;
/**
 *
 * @param fahrenheit Fahrenheit degrees
 * @returns Celcius degrees
 */
declare function fahrenheitToCelcius(fahrenheit: number): number;
/**
 *
 * @param kelvin Kelvin degrees
 * @returns Fahrenheit degrees
 */
declare function kelvinToFahrenheit(kelvin: number): number;
/**
 *
 * @param fahrenheit Fahrenheit degrees
 * @returns Kelvin degrees
 */
declare function fahrenheitToKelvin(fahrenheit: number): number;
/**
 * Round decimal number to two decimals
 * @param {number} num Number
 * @returns {number} num rounded to two decimals
 */
declare function roundToTwoDecimals(num: number): number;
/**
 * Convert M/S to KM/H
 * @param {number} mps Meter Per Second
 * @returns {number} KM/H
 */
declare function meterPerSecondToKilometerPerHour(mps: number): number;
declare const _default: {
    dewPointMagnusFormula: typeof dewPointMagnusFormula;
    dewPointArdenBuckEquation: typeof dewPointArdenBuckEquation;
    windChillIndex: typeof windChillIndex;
    australianAapparentTemperature: typeof australianAapparentTemperature;
    heatIndex: typeof heatIndex;
    heatIndexText: typeof heatIndexText;
    humidex: typeof humidex;
    humidexText: typeof humidexText;
    roundToTwoDecimals: typeof roundToTwoDecimals;
    kelvinToCelcius: typeof kelvinToCelcius;
    celciusToKelvin: typeof celciusToKelvin;
    celciusToFahrenheit: typeof celciusToFahrenheit;
    fahrenheitToCelcius: typeof fahrenheitToCelcius;
    kelvinToFahrenheit: typeof kelvinToFahrenheit;
    fahrenheitToKelvin: typeof fahrenheitToKelvin;
    meterPerSecondToKilometerPerHour: typeof meterPerSecondToKilometerPerHour;
    potentialTemperature: typeof potentialTemperature;
    virtualTemperature: typeof virtualTemperature;
    DEW_POINT_VALUATIONS: {
        readonly ARDENBUCK_DEFAULT: {
            readonly a: 6.1121;
            readonly b: 18.678;
            readonly c: 257.14;
            readonly d: 234.5;
        };
        readonly DAVID_BOLTON: {
            readonly a: 6.112;
            readonly b: 17.67;
            readonly c: 234.5;
            readonly d: 234.5;
        };
        readonly SONNTAG1990: {
            readonly a: 6.112;
            readonly b: 17.62;
            readonly c: 243.12;
            readonly d: 234.5;
        };
        readonly PAROSCIENTIFIC: {
            readonly a: 6.105;
            readonly b: 17.27;
            readonly c: 237.7;
            readonly d: 234.5;
        };
        readonly ARDENBUCK_PLUS: {
            readonly a: 6.1121;
            readonly b: 17.368;
            readonly c: 238.88;
            readonly d: 234.5;
        };
        readonly ARDENBUCK_MINUS: {
            readonly a: 6.1121;
            readonly b: 17.966;
            readonly c: 247.15;
            readonly d: 234.5;
        };
    };
    calculateLapseRate: typeof calculateLapseRate;
    calculateDynamicLapseRate: typeof calculateDynamicLapseRate;
    calculateWeightedAverageTemperature: typeof calculateWeightedAverageTemperature;
    isTemperatureInversion: typeof isTemperatureInversion;
    adjustTemperatureByLapseRate: typeof adjustTemperatureByLapseRate;
};
export default _default;
