type Signed = -1 | 0 | 1; interface BigDecimalProps { decimals: readonly number[]; integers: readonly number[]; signed: Signed; } type BigDecimalValue = string | number | BigDecimalProps; type RoundMode = 'round' | 'ceil' | 'floor' | 'half-to-even'; interface RoundStrategy { precision: number; roundMode: RoundMode; } export declare class BigDecimal { readonly signed: Signed; readonly integers: readonly number[]; readonly decimals: readonly number[]; protected constructor(value: BigDecimalValue | BigDecimal); get data(): number; get rounded(): number; abs(): BigDecimal; negative(): BigDecimal; plus(value: BigDecimalValue): BigDecimal; minus(value: BigDecimalValue): BigDecimal; multiply(value: BigDecimalValue): BigDecimal; divide(value: BigDecimalValue, precision?: number): BigDecimal; percentage(rate: number): BigDecimal; round(precision?: number): BigDecimal; ceil(precision?: number): BigDecimal; floor(precision?: number): BigDecimal; halfToEven(precision?: number): BigDecimal; roundWith(strategy: RoundStrategy): number; isNegative(): boolean; isPositive(): boolean; isZero(): boolean; equals(value: BigDecimalValue): boolean; greaterThan(value: BigDecimalValue): boolean; greaterThanOrEqualTo(value: BigDecimalValue): boolean; lessThan(value: BigDecimalValue): boolean; lessThanOrEqualTo(value: BigDecimalValue): boolean; clone(): BigDecimal; toString(): string; static create(value: BigDecimalValue): BigDecimal; static zero(): BigDecimal; } export declare function bigDecimal(value?: BigDecimalValue): BigDecimal; export declare function roundStrategy(strategy: RoundStrategy): void; export {};