UNPKG

@easymoney/bigint-money

Version:
34 lines 1.66 kB
import { Money, RoundingModesType, AnyCurrencyUnit } from "@easymoney/core"; import { BigIntCalculatorBase } from "../calculator/"; export interface BigIntMoneyBase<CT> { getAmount: () => Money<CT, bigint>["amount"]; getCurrency: () => Money<CT, bigint>["currency"]; add(money: BigIntMoneyBase<CT>): BigIntMoneyBase<CT>; subtract(money: BigIntMoneyBase<CT>): BigIntMoneyBase<CT>; isSameCurrency(money: BigIntMoneyBase<CT>): boolean; equals(money: BigIntMoneyBase<CT>): boolean; compare(money: BigIntMoneyBase<CT>): 1 | 0 | -1; greaterThan(money: BigIntMoneyBase<CT>): boolean; greaterThanOrEqual(money: BigIntMoneyBase<CT>): boolean; lessThan(money: BigIntMoneyBase<CT>): boolean; lessThanOrEqual(money: BigIntMoneyBase<CT>): boolean; multiply(number: number | string | bigint, roundingMode?: RoundingModesType): BigIntMoneyBase<CT>; divide(number: number | string | bigint, roundingMode?: RoundingModesType): BigIntMoneyBase<CT>; allocate(ratios: number[]): BigIntMoneyBase<CT>[]; allocateTo(number: number): BigIntMoneyBase<CT>[]; getSource: () => bigint; } export declare type BigIntPrivateInstance<CT> = { calculator: BigIntCalculatorBase; instanceMoney: Money<CT, bigint>; roundindMode: RoundingModesType; }; export declare type BigIntMoneyInput<CT> = { amount: number | string | bigint; currency: CT extends string ? CT : CT extends AnyCurrencyUnit ? CT : never; }; export declare type BigIntInstance<CT> = { privateInstance: BigIntPrivateInstance<CT>; publicInstance: BigIntMoneyBase<CT>; }; //# sourceMappingURL=types.d.ts.map