import Decimal from "decimal.js"; export type N = string | number | Number | LiquidNumber; export declare abstract class LiquidNumber { abstract float: boolean; readonly n: Decimal; constructor(val: string | number | Decimal); valueOf(): number; abs(): NumberT; ceil(): NumberT; div(n: N): NumberT; eq(n: N): boolean; floor(): NumberT; gt(n: N): boolean; gte(n: N): boolean; lt(n: N): boolean; lte(n: N): boolean; max(n: N): NumberT; min(n: N): NumberT; minus(n: N): NumberT; mod(n: N): NumberT; plus(n: N): NumberT; round(decimalPlaces?: number): NumberT; times(n: N): NumberT; trunc(): NumberT; isFinite(): boolean; } export declare class Float extends LiquidNumber { readonly float: true; toString(): string; } export declare class Integer extends LiquidNumber { readonly float: false; toString(): string; } export type NumberT = Integer | Float; /** * A type predicate for Liquid's number wrapper types. */ export declare function isNumberT(val: unknown): val is NumberT; /** * A type predicate for Liquid's `Integer` type. */ export declare function isInteger(val: unknown): val is Integer; /** * A type predicate for Liquid's `Float` type. */ export declare function isFloat(val: unknown): val is Float; export declare const ZERO: Integer; export declare const NAN: Integer; /** * A type predicate for valid inputs to the `parseNumberT` function. * * @param val - Any value. * @returns `true` if the input value can be passed to `parseNumberT`. */ export declare function isN(val: unknown): val is N; /** * Parse a string, primitive number or Number object to a Liquid * integer or float. * * @param n - A number or string representation of a number. * @returns A wrapped number representing a Liquid integer or float. */ export declare function parseNumberT(n: N): NumberT;