import { Unit } from "./units/Unit";
export declare class Measurement<U extends Unit> {
    value: number;
    unit: U;
    constructor(value: number, unit: U);
    converted<V extends Unit>(targetUnit: V): Measurement<V>;
    add(other: Measurement<U>): Measurement<U>;
    static add<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): Measurement<U>;
    subtract(other: Measurement<U>): Measurement<U>;
    static subtract<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): Measurement<U>;
    equals(other: Measurement<U>): boolean;
    static equals<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
    closeTo(other: Measurement<U>, tolerance: number): boolean;
    static closeTo<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>, tolerance: number): boolean;
    greaterThan(other: Measurement<U>): boolean;
    static greaterThan<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
    lessThan(other: Measurement<U>): boolean;
    static lessThan<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
    greaterThanOrEqual(other: Measurement<U>): boolean;
    static greaterThanOrEqual<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
    lessThanOrEqual(other: Measurement<U>): boolean;
    static lessThanOrEqual<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
    get shortLabel(): string;
    get longLabel(): string;
}
