import { Mento, Exchange } from "@mento-protocol/mento-sdk"; import { BigNumber } from "bignumber.js"; import Web3 from "web3"; import { Address, Pair, Snapshot, BigNumberString } from "../pair"; declare enum PricingFunctionType { ConstantProduct = "ConstantProduct", ConstantSum = "ConstantSum" } interface PairMentoV2Snapshot extends Snapshot { spread: BigNumberString; updateFrequency: BigNumberString; pricingModule: PricingFunctionType; tokenPrecisionMultipliers: [BigNumberString, BigNumberString]; decimals: [number, number]; isCollateralA: boolean; isCollateralB: boolean; bucket0: BigNumberString; bucket1: BigNumberString; tokenMaxIn: [BigNumberString, BigNumberString]; tokenMaxOut: [BigNumberString, BigNumberString]; tradingEnabled: boolean; reserveBalanceA: string; reserveBalanceB: string; errAtoB: boolean; errBtoA: boolean; } export declare class PairMentoV2 extends Pair { private web3; private mento; private exchange; private sortedOraclesAddress; private poolExchange; private spread; private updateFrequency; private pricingModule; private tokenPrecisionMultipliers; private decimals; private isCollateralA; private isCollateralB; private bucket0; private bucket1; private tokenMaxIn; private tokenMaxOut; private tradingEnabled; private reserveBalanceA; private reserveBalanceB; private errAtoB; private errBtoA; private provider; private biPoolManager; private reserve; private erc20A; private erc20B; constructor(chainId: number, web3: Web3, mento: Mento, exchange: Exchange, sortedOraclesAddress: string, reserveAddress: string); protected _init(): Promise<{ pairKey: string | null; tokenA: string; tokenB: string; }>; refresh(): Promise; swapExtraData(): string; outputAmount(inputToken: Address, inputAmount: BigNumber): BigNumber; inputAmount(outputToken: Address, outputAmount: BigNumber): BigNumber; snapshot(): PairMentoV2Snapshot; restore(snapshot: PairMentoV2Snapshot): Promise; private mentoBucketsAfterUpdate; private getPricingModuleName; } export {};