import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam } from '../../types'; import { SwapSide, Network } from '../../constants'; import { IDex } from '../../dex/idex'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { AllVaultConfigs, VaultConfig, VaultsStates, CapData } from './types'; import { SimpleExchange } from '../simple-exchange'; import { CapPools } from './cap-pools'; import { Interface } from '@ethersproject/abi'; export declare class Cap extends SimpleExchange implements IDex { readonly network: Network; readonly dexKey: string; readonly dexHelper: IDexHelper; capIface: Interface; eventPools: CapPools; readonly hasConstantPriceLargeAmounts = false; readonly needWrapNative = true; readonly isFeeOnTransferSupported = false; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; logger: Logger; configs: AllVaultConfigs; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, capIface?: Interface); initializePricing(blockNumber: number): Promise; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getPoolIdentifiers(srcToken: Token, destToken: Token, _side: SwapSide, _blockNumber: number): Promise; private getPoolIdentifier; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CapData, side: SwapSide): AdapterExchangeParam; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: CapData, side: SwapSide): DexExchangeParam; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; private _detectMintBurn; getAmountOut(state: VaultsStates, config: VaultConfig, params: { mint: boolean; asset: Address; amount: bigint; }): bigint; getAmountIn(state: VaultsStates, config: VaultConfig, params: { mint: boolean; asset: Address; amount: bigint; }): bigint; }