import type { Add, Sub, Mul, Div, Pow, Mod, Abs, Eq, Gt, Gte, Lt, Lte } from "./types"; export declare const FRACTION_SLASH = "\u2044"; export type RationalFormat = "space" | "nospace" | "unicode"; export type RationalFormatOptions = { mixed?: boolean; format?: RationalFormat; }; export type RationalLike = [rational: Rational] | [numerator: number] | [numerator: number, denominator: number]; /** * A rational number class for fraction arithmetic without loss of precision. * Operations are only guaranteed where numerator and denominator are within * {@link Number.MIN_SAFE_INTEGER} and {@link Number.MAX_SAFE_INTEGER}. */ export declare class Rational implements Number, Add, Sub, Mul, Div, Pow<[number], Rational>, Mod<[number], Rational>, Abs, Eq, Gt, Gte, Lt, Lte { #private; constructor(numerator: number, denominator?: number); get numerator(): number; get denominator(): number; static from(...input: RationalLike | [fraction: string]): Rational; static parse(fraction: string): Rational; recip(): Rational; add(...addend: RationalLike): Rational; sub(...subtrahend: RationalLike): Rational; mul(...multiplicand: RationalLike): Rational; div(...divisor: RationalLike): Rational; pow(exponent: number): Rational; mod(modulus: number): Rational; abs(): Rational; eq(...other: RationalLike): boolean; gt(...other: RationalLike): boolean; gte(...other: RationalLike): boolean; lt(...other: RationalLike): boolean; lte(...other: RationalLike): boolean; toFraction({ mixed, format, }?: RationalFormatOptions): string; valueOf(): number; toFixed(fractionDigits?: number | undefined): string; toExponential(fractionDigits?: number | undefined): string; toPrecision(precision?: number | undefined): string; toString(radix?: number | undefined): string; get [Symbol.toStringTag](): string; [Symbol.toPrimitive](hint: string): string | number; }