import { Reading } from '../common';
import { AtmospericConstants } from '../constants';
/**
 * Calculates the pressure altitude based on the observed pressure.
 * Pressure altitude is the altitude in the International Standard Atmosphere (ISA) where the observed pressure would occur.
 *
 * @param {number} pressure Observed pressure in Pascals (Pa).
 * @returns {number} Pressure altitude in meters (m).
 */
declare function pressureAltitude(pressure: number): number;
/**
 * Calculates the density altitude, which is the altitude relative to the standard atmosphere conditions
 * at which the air density would be equal to the current air density.
 *
 * @param {number} pressureAltitude Pressure altitude in meters (m).
 * @param {number} temperature Temperature in Kelvin (K).
 * @returns {number} Density altitude in meters (m).
 */
declare function densityAltitude(pressureAltitude: number, temperature: number): number;
/**
 * Calculates the barometric pressure at a given altitude using the barometric formula.
 * The calculation accounts for both zero and non-zero lapse rates.
 *
 * @param {number} altitude Target altitude in meters (m).
 * @param {number} referencePressure Pressure at the reference altitude in Pascals (Pa).
 * @param {number} referenceAltitude Reference altitude in meters (m).
 * @param {number} referenceTemperature Temperature at the reference altitude in Kelvin (K). Defaults to 288.15 K (15°C).
 * @param {AtmospericConstants} constants Atmospheric constants (e.g., lapse rate, gravity, gas constant).
 * @returns {number} Barometric pressure at the target altitude in Pascals (Pa).
 */
declare function barometricPressure(altitude: number, referencePressure: number, referenceAltitude: number, referenceTemperature?: number, constants?: AtmospericConstants): number;
/**
 * Reduces the observed pressure to sea level using a simplified barometric formula.
 * This method assumes a standard sea level mean temperature of 15°C (288.15 K) and is less accurate for non-standard temperatures.
 *
 * @param {number} pressureObserved Observed pressure in Pascals (Pa).
 * @param {number} altitude Altitude of the observed pressure in meters (m).
 * @param {number} temperatureAtSeaLevel Temperature at sea level in Kelvin (K). Defaults to 288.15 K (15°C).
 * @returns {number} Pressure reduced to sea level in Pascals (Pa), rounded to two decimal places.
 */
declare function adjustPressureToSeaLevelSimple(pressureObserved: number, altitude: number, temperatureAtSeaLevel?: number): number;
/**
 * Reduces the observed pressure to sea level with higher accuracy by using the barometric formula.
 * This method allows customization of atmospheric constants for non-standard conditions.
 *
 * @param {number} pressureObserved Observed pressure in Pascals (Pa).
 * @param {number} altitude Altitude of the observed pressure in meters (m).
 * @param {number} temperature Temperature at sea level in Kelvin (K). Defaults to 288.15 K (15°C).
 * @param {AtmospericConstants} constants Atmospheric constants (e.g., lapse rate, gravity, gas constant). Defaults to Earth's standard constants.
 * @returns {number} Pressure reduced to sea level in Pascals (Pa), rounded to two decimal places.
 */
declare function adjustPressureToSeaLevelAdvanced(pressureObserved: number, altitude: number, temperature?: number, constants?: AtmospericConstants): number;
/**
 *
 * @param pressure Observed pressure
 * @param altitude Observed altitude
 * @param temperature Observed temperature
 * @param lapseRate Lapse rate
 * @returns Adjusted pressure
 */
declare function adjustPressureToSeaLevelByDynamicLapseRate(pressure: number, altitude: number, temperature: number, lapseRate: number): number;
declare function adjustPressureToSeaLevelByHistoricalData(pressure: number, altitude: number, readings: Reading[], hours?: number): number;
declare const _default: {
    pressureAltitude: typeof pressureAltitude;
    densityAltitude: typeof densityAltitude;
    barometricPressure: typeof barometricPressure;
    adjustPressureToSeaLevelSimple: typeof adjustPressureToSeaLevelSimple;
    adjustPressureToSeaLevelAdvanced: typeof adjustPressureToSeaLevelAdvanced;
    adjustPressureToSeaLevelByDynamicLapseRate: typeof adjustPressureToSeaLevelByDynamicLapseRate;
    adjustPressureToSeaLevelByHistoricalData: typeof adjustPressureToSeaLevelByHistoricalData;
};
export default _default;
