import BigNumber from 'bignumber.js'; export declare enum Denomination { /** * values for asset amounts in base units (no decimal) */ Base = "BASE", /** * values of asset amounts (w/ decimal) */ Asset = "ASSET" } export type Amount = T extends Denomination ? { type: T; amount: () => BigNumber; plus: (value: BigNumber.Value | Amount, decimal?: number) => Amount; minus: (value: BigNumber.Value | Amount, decimal?: number) => Amount; times: (value: BigNumber.Value | Amount, decimal?: number) => Amount; div: (value: BigNumber.Value | Amount, decimal?: number) => Amount; gt: (value: BigNumber.Value | Amount) => boolean; gte: (value: BigNumber.Value | Amount) => boolean; lt: (value: BigNumber.Value | Amount) => boolean; lte: (value: BigNumber.Value | Amount) => boolean; eq: (value: BigNumber.Value | Amount) => boolean; decimal: number; } : never; export type BaseAmount = Amount; export type AssetAmount = Amount;