import { NumberFormatOptions, RoundingStrategy } from './types'; export interface ApproximateEqualityThreshold { /** * Number of ULPs, or _units of lowest precision_, between the * compared numbers. This corresponds to how many representable * numbers there are between the two numbers that are being * compared (plus one, technically, as we're taking the difference * of ULPs). After _N_ well-behaved floating point operations, the * expected error is roughly _sqrt(N)_ ULPs. */ ulps?: number; /** * The absolute difference between the two compared numbers. */ abs?: number; /** * The relative difference between the two numbers being compared. * If both numbers are normal, the difference is relative to the * number with the smaller magnitude. If one of the numbers is * subnormal, then the difference is relative to the smallest * normal number. */ rel?: number; } export declare function ulpDistance(a: number, b: number): number; export declare function absDistance(a: number, b: number): number; export declare const MIN_NORMAL_NUMBER: number; export declare function relDistance(a: number, b: number): number; export declare function areApproximatelyEqual(a: number, b: number, thresholds?: ApproximateEqualityThreshold): boolean; export declare function formatFloat(n: number, { fancyUnicode, decimalPlaces, roundingStrategy, digitGroupLength, digitGroupSeparator, fractionalPartSeparator, allowNegativeZero, }: NumberFormatOptions): string; export declare function roundFloat(n: number, strategy: RoundingStrategy): number;