import { CurrencyAmount, NativeToken, Price } from 'maia-core-sdk'; import { ComposableStablePoolWrapper } from '../vault/ComposableStablePoolWrapper'; import { BalancerComposableStablePool } from './BalancerComposableStablePool'; export declare class ComposableStablePool { readonly token0: NativeToken; readonly token1: NativeToken; readonly wrapper?: ComposableStablePoolWrapper; readonly wrappedTokenIndex: number; private _pool; private _token0Price?; private _token1Price?; constructor(tokenA: NativeToken, tokenB: NativeToken, pool: BalancerComposableStablePool, wrapper?: ComposableStablePoolWrapper); get pool(): BalancerComposableStablePool; set pool(value: BalancerComposableStablePool); /** * Returns true if the token is either token0 or token1 * @param token The token to check * @returns True if token is either token0 or token */ involvesToken(token: NativeToken): boolean; /** * Returns the current mid price of the pool in terms of token0, i.e. the ratio of token1 over token0 */ get token0Price(): Price; /** * Returns the current mid price of the pool in terms of token1, i.e. the ratio of token0 over token1 */ get token1Price(): Price; private getTokenPrice; /** * Return the price of the given token in terms of the other token in the pool. * @param token The token to return price of * @returns The price of the given token, in terms of the other. */ priceOf(token: NativeToken): Price; /** * Returns the chain ID of the tokens in the pair. */ get chainId(): number; /** * Given an input amount of a token, return the computed output amount, and a pool with state updated after the trade * @param inputAmount The input amount for which to quote the output amount * @returns The output amount and the pool with updated state * @throws if token is not in the pool */ getOutputAmount(inputAmount: CurrencyAmount): Promise<[CurrencyAmount, ComposableStablePool]>; /** * Given an output amount of a token, return the computed input amount, and a pool with state updated after the trade * @param _outputAmount The output amount for which to quote the input amount * @param inputToken The token from which the input amount should correspond (defaults to BPT if not specified) * @returns The input amount and the pool with updated state * @throws if token is not in the pool * @throws if inputToken is not in the pool * @throws if token and inputToken are the same */ getInputAmount(_outputAmount: CurrencyAmount): Promise<[CurrencyAmount, ComposableStablePool]>; }