import type { SIPrefix, UnitKey, UnitNumberMethods } from './types';
/**
 * @class Class to handle conversions between various types of units.
 *
 * Includes static methods for:
 * - Length: meters, feet, kilometers, miles
 * - Mass: kilograms, pounds, grams, ounces
 * - Temperature: Celsius, Fahrenheit, Kelvin
 * - Volume: liters, gallons
 * - Area: square meters, square feet
 * - Speed: km/h, mph
 * - Time: hours, minutes, seconds, days
 * - Digital Storage: kilobytes, megabytes, gigabytes
 * - Energy: joules, calories
 * - Pressure: atm, pascals
 * - Frequency: Hz, kHz
 *
 * @remarks For more robust unit conversion, please use the `Converter` function which provides category-specific conversion classes.
 */
export declare class Unit {
    #private;
    /**
     * * Creates an instance of the Unit class.
     * @param value The numeric value to work with.
     * @param unit The unit type of the value (e.g., 'kg', 'm', 'kb').
     */
    constructor(value: number, unit?: UnitKey);
    /**
     * @instance Returns the original value with unit (if passed in the constructor).
     * @returns A string in the format "value unit".
     */
    toString(): string;
    /**
     * @instance Converts using scientific prefixes (e.g., kB to MB, mg to g).
     *
     * @param fromPrefix The SI prefix of the source unit.
     * @param toPrefix The SI prefix of the target unit.
     * @returns The converted numeric value.
     */
    convertByPrefix(fromPrefix: SIPrefix, toPrefix: SIPrefix): number;
    /**
     * @instance Converts from prefixed unit string to another (e.g., kB to MB, mg to g).
     *
     * @param from Prefixed unit string (e.g., 'kB', 'mg').
     * @param to Target prefixed unit string (e.g., 'MB', 'g').
     * @returns The converted numeric value.
     */
    convertFromTo(from: string, to: string): number;
    /**
     * @instance Converts the value using a static method name from the `Unit` class.
     *
     * - **N.B.** *Provides IntelliSense and type safety for method selection.*
     *
     * @param methodName - A static `Unit` method that accepts a number and returns a number.
     * @returns The converted numeric value.
     */
    convert(methodName: UnitNumberMethods): number;
    /**
     * @static Converts a value using scientific prefixes (e.g., kB to MB, mg to g).
     *
     * @param value The value to convert.
     * @param fromPrefix The SI prefix of the source unit.
     * @param toPrefix The SI prefix of the target unit.
     * @returns The converted numeric value.
     */
    static convertByPrefix(value: number, fromPrefix: SIPrefix, toPrefix: SIPrefix): number;
    /**
     * @static Converts from prefixed unit string to another (e.g., kB to MB, mg to g).
     *
     * @param value The numeric value.
     * @param from Prefixed unit string (e.g., 'kB', 'mg').
     * @param to Target prefixed unit string (e.g., 'MB', 'g').
     * @returns The converted numeric value.
     */
    static convertFromTo(value: number, from: string, to: string): number;
    /** Converts meters to feet. */
    static metersToFeet(m: number): number;
    /** Converts feet to meters. */
    static feetToMeters(ft: number): number;
    /** Converts kilometers to miles. */
    static kmToMiles(km: number): number;
    /** Converts miles to kilometers. */
    static milesToKm(mi: number): number;
    /** Converts kilograms to pounds. */
    static kgToLbs(kg: number): number;
    /** Converts pounds to kilograms. */
    static lbsToKg(lbs: number): number;
    /** Converts grams to ounces. */
    static gramsToOunces(g: number): number;
    /** Converts ounces to grams. */
    static ouncesToGrams(oz: number): number;
    /** Converts Celsius to Fahrenheit. */
    static celsiusToFahrenheit(c: number): number;
    /** Converts Fahrenheit to Celsius. */
    static fahrenheitToCelsius(f: number): number;
    /** Converts Celsius to Kelvin. */
    static celsiusToKelvin(c: number): number;
    /** Converts Kelvin to Celsius. */
    static kelvinToCelsius(k: number): number;
    /** Converts Fahrenheit to Kelvin. */
    static fahrenheitToKelvin(f: number): number;
    /** Converts Kelvin to Fahrenheit. */
    static kelvinToFahrenheit(k: number): number;
    /** Converts milliliters to liters. */
    static mlToLiters(ml: number): number;
    /** Converts liters to milliliters. */
    static litersToMl(l: number): number;
    /** Converts gallons to milliliters. */
    static gallonsToMl(gal: number): number;
    /** Converts milliliters to gallons. */
    static mlToGallons(ml: number): number;
    /** Converts liters to gallons. */
    static litersToGallons(l: number): number;
    /** Converts gallons to liters. */
    static gallonsToLiters(gal: number): number;
    /** Converts square meters to square feet. */
    static sqmToSqft(sqm: number): number;
    /** Converts square feet to square meters. */
    static sqftToSqm(sqft: number): number;
    /** Converts kilometers per hour to miles per hour. */
    static kmphToMph(kmph: number): number;
    /** Converts miles per hour to kilometers per hour. */
    static mphToKmph(mph: number): number;
    /** Converts minutes to hours. */
    static minutesToHours(min: number): number;
    /** Converts seconds to minutes. */
    static secondsToMinutes(sec: number): number;
    /** Converts hours to days. */
    static hoursToDays(hr: number): number;
    /** Converts hours to minutes. */
    static hoursToMinutes(h: number): number;
    /** Converts minutes to seconds. */
    static minutesToSeconds(m: number): number;
    /** Converts days to hours. */
    static daysToHours(d: number): number;
    /** Converts megabytes to gigabytes. */
    static mbToGb(mb: number): number;
    /** Converts gigabytes to megabytes. */
    static gbToMb(gb: number): number;
    /** Converts kilobytes to megabytes. */
    static kbToMb(kb: number): number;
    /** Converts kilobytes to gigabytes. */
    static kbToGb(kb: number): number;
    /** Converts gigabytes to kilobytes. */
    static gbToKb(gb: number): number;
    /** Converts bytes to kilobytes. */
    static bytesToKb(bytes: number): number;
    /** Converts kilobytes to bytes. */
    static kbToBytes(kb: number): number;
    /** Converts megabytes to kilobytes. */
    static mbToKb(mb: number): number;
    /** Converts gigabytes to terabytes. */
    static gbToTb(gb: number): number;
    /** Converts terabytes to gigabytes. */
    static tbToGb(tb: number): number;
    /** Converts joules to calories. */
    static joulesToCalories(j: number): number;
    /** Converts calories to joules. */
    static caloriesToJoules(cal: number): number;
    /** Converts calories to kilojoules. */
    static caloriesToKJoules(cal: number): number;
    /** Converts kilojoules to calories. */
    static kJoulesToCalories(kj: number): number;
    /** Converts atmospheres to pascals. */
    static atmToPascal(atm: number): number;
    /** Converts pascals to atmospheres. */
    static pascalToAtm(pa: number): number;
    /** Converts bar to pascals. */
    static barToPascal(bar: number): number;
    /** Converts pascals to bar. */
    static pascalToBar(pa: number): number;
    /** Converts hertz to kilohertz. */
    static hzToKHz(hz: number): number;
    /** Converts kilohertz to hertz. */
    static kHzToHz(khz: number): number;
    /** Converts hertz to megahertz. */
    static hzToMHz(hz: number): number;
    /** Converts megahertz to hertz. */
    static mHzToHz(mhz: number): number;
    /** Converts kilohertz to megahertz. */
    static kHzToMHz(khz: number): number;
    /** Converts megahertz to kilohertz. */
    static mHzToKHz(mhz: number): number;
    /** Converts centimeters to meters. */
    static cmToMeters(cm: number): number;
    /** Converts meters to centimeters. */
    static metersToCm(m: number): number;
    /** Converts millimeters to meters. */
    static mmToMeters(mm: number): number;
    /** Converts meters to millimeters. */
    static metersToMm(m: number): number;
    /** Converts square kilometers to square meters. */
    static sqkmToSqm(sqkm: number): number;
    /** Converts square meters to square kilometers. */
    static sqmToSqkm(sqm: number): number;
    /** Converts square feet to square inches. */
    static sqftToSqin(sqft: number): number;
    /** Converts square inches to square feet. */
    static sqinToSqft(sqin: number): number;
    /** Converts watts to kilowatts. */
    static wattsToKw(w: number): number;
    /** Converts kilowatts to watts. */
    static kwToWatts(kw: number): number;
}
