import type { Token } from "@saberhq/token-utils"; import { Fraction, TokenAmount } from "@saberhq/token-utils"; import type { IExchangeInfo } from "../entities/exchange.js"; import type { Fees } from "../state/fees.js"; /** * Calculates the current virtual price of the exchange. * @param exchange * @returns */ export declare const calculateVirtualPrice: (exchange: IExchangeInfo) => Fraction | null; /** * Calculates the estimated output amount of a swap. * @param exchange * @param fromAmount * @returns */ export declare const calculateEstimatedSwapOutputAmount: (exchange: IExchangeInfo, fromAmount: TokenAmount) => { fee: TokenAmount; outputAmountBeforeFees: TokenAmount; outputAmount: TokenAmount; lpFee: TokenAmount; adminFee: TokenAmount; }; export interface IWithdrawOneResult { withdrawAmount: TokenAmount; withdrawAmountBeforeFees: TokenAmount; swapFee: TokenAmount; withdrawFee: TokenAmount; lpSwapFee: TokenAmount; lpWithdrawFee: TokenAmount; adminSwapFee: TokenAmount; adminWithdrawFee: TokenAmount; } /** * Calculates the amount of tokens withdrawn if only withdrawing one token. * @returns */ export declare const calculateEstimatedWithdrawOneAmount: ({ exchange, poolTokenAmount, withdrawToken, }: { exchange: IExchangeInfo; poolTokenAmount: TokenAmount; withdrawToken: Token; }) => IWithdrawOneResult; /** * Compute normalized fee for symmetric/asymmetric deposits/withdraws */ export declare const normalizedTradeFee: ({ trade }: Fees, n_coins: bigint, amount: bigint) => Fraction; export declare const calculateEstimatedWithdrawAmount: ({ poolTokenAmount, reserves, fees, lpTotalSupply, }: { /** * Amount of pool tokens to withdraw */ poolTokenAmount: TokenAmount; } & Pick) => { withdrawAmounts: readonly [TokenAmount, TokenAmount]; withdrawAmountsBeforeFees: readonly [TokenAmount, TokenAmount]; fees: readonly [TokenAmount, TokenAmount]; }; /** * Calculate the estimated amount of LP tokens minted after a deposit. * @param exchange * @param depositAmountA * @param depositAmountB * @returns */ export declare const calculateEstimatedMintAmount: (exchange: IExchangeInfo, depositAmountA: bigint, depositAmountB: bigint) => { mintAmountBeforeFees: TokenAmount; mintAmount: TokenAmount; fees: TokenAmount; }; //# sourceMappingURL=amounts.d.ts.map