export type Numberish = number | string | bigint; export type FixedPointNumberValue = Numberish | T; export declare enum RoundMode { ROUND_DOWN = 0, ROUND_UP = 1, ROUND_HALF_UP = 2, ROUND_HALF_DOWN = 3 } interface IFixedPointNumber { add(value: FixedPointNumberValue): IFixedPointNumber; sub(value: FixedPointNumberValue): IFixedPointNumber; mul(value: FixedPointNumberValue): IFixedPointNumber; div(value: FixedPointNumberValue): IFixedPointNumber; pow(exp: FixedPointNumberValue): IFixedPointNumber; scaleUp(scale: number): IFixedPointNumber; scaleDown(scale: number, rounding: RoundMode): IFixedPointNumber; format(decimals?: number): string; } export declare class FixedPointNumber implements IFixedPointNumber { readonly value: bigint; readonly scale: bigint; constructor(value: FixedPointNumberValue, scale?: Numberish); add(value: FixedPointNumberValue): FixedPointNumber; sub(value: FixedPointNumberValue): FixedPointNumber; mul(value: FixedPointNumberValue): FixedPointNumber; scaleMul(value: Numberish): FixedPointNumber; div(value: FixedPointNumberValue): FixedPointNumber; scaleDiv(value: Numberish): FixedPointNumber; pow(exp: Numberish): FixedPointNumber; scaleit(scale: Numberish): FixedPointNumber; scaleUp(scale: Numberish): FixedPointNumber; scaleDown(scale: Numberish, rounding: RoundMode): FixedPointNumber; eq(value: FixedPointNumberValue): boolean; lte(value: FixedPointNumberValue): boolean; gte(value: FixedPointNumberValue): boolean; lt(value: FixedPointNumberValue): boolean; gt(value: FixedPointNumberValue): boolean; percent(percent: number): FixedPointNumber; format(decimals?: number): string; toNumber(): number; } export {};