@easymoney/bigint-money
Version:
Best way to do money in js
34 lines • 1.66 kB
TypeScript
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