import BigNumber from 'bignumber.js'; import { TokenBaseStruct } from "./models/token-base-struct"; import { PriceToken, PriceTokenStruct } from "./price-token"; import { TokenStruct } from "./token"; import { BlockchainName } from "../../core/blockchain/models/blockchain-name"; export type PriceTokenAmountStruct = PriceTokenStruct & ({ weiAmount: BigNumber; } | { tokenAmount: BigNumber; }); export type PriceTokenAmountBaseStruct = TokenBaseStruct & ({ weiAmount: BigNumber; } | { tokenAmount: BigNumber; }); /** * Contains token structure with price and amount. */ export declare class PriceTokenAmount extends PriceToken { /** * Creates PriceTokenAmount based on token's address and blockchain. * @param tokenAmountBaseStruct Base token structure with amount. */ static createToken(tokenAmountBaseStruct: PriceTokenAmountBaseStruct): Promise>; /** * Creates PriceTokenAmount, fetching token's price. * @param tokenAmount Token structure with amount. */ static createFromToken(tokenAmount: TokenStruct & ({ weiAmount: BigNumber; } | { tokenAmount: BigNumber; })): Promise>; private readonly _weiAmount; /** * Gets set amount in wei. */ get weiAmount(): BigNumber; /** * Gets set amount in wei and converted to string. */ get stringWeiAmount(): string; /** * Gets set amount with decimals. */ get tokenAmount(): BigNumber; /** * Serializes priceTokenAmount to struct object. */ get asStructWithAmount(): PriceTokenAmountStruct; constructor(tokenStruct: PriceTokenAmountStruct); /** * Returns wei amount decreased by (1 - slippage) times. * @param slippage Slippage in range from 0 to 1. */ weiAmountMinusSlippage(slippage: number): BigNumber; /** * Returns wei amount increased by (1 - slippage) times. * @param slippage Slippage in range from 0 to 1. */ weiAmountPlusSlippage(slippage: number): BigNumber; cloneAndCreate(tokenStruct?: Partial): Promise; clone(tokenStruct?: Partial): PriceTokenAmount; /** * Calculates trade price impact percent if instance token is selling token, and parameter is buying token. * If selling usd amount is less than buying usd amount, returns 0. * @param toToken Token to buy. */ calculatePriceImpactPercent(toToken: PriceTokenAmount): number | null; }