import { Interface } from '@ethersproject/abi'; import { NumberAsString, SwapSide } from '@paraswap/core'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, Logger, PoolLiquidity, PoolPrices, SimpleExchangeParam, Token, TransferFeeParams } from '../../types'; import { IDex } from '../idex'; import { Network } from '../../constants'; import { IDexHelper } from '../../dex-helper'; import { SimpleExchange } from '../simple-exchange'; import { AsyncOrSync } from 'ts-essentials'; import { SwethPool } from './sweth-pool'; import { RswethPool } from './rsweth-pool'; export declare enum swETHFunctions { deposit = "deposit" } export type SwellData = {}; export type SwellParams = {}; export declare class Swell extends SimpleExchange implements IDex { protected network: Network; protected dexHelper: IDexHelper; protected config: { swETH: string; rswETH: string; }; protected adapters: { [side: string]: { name: string; index: number; }[]; }; static dexKeys: string[]; swETHInterface: Interface; rswETHInterface: Interface; needWrapNative: boolean; hasConstantPriceLargeAmounts: boolean; swETHAddress: string; rswETHAddress: string; swethPool: SwethPool; rswethPool: RswethPool; logger: Logger; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, config?: { swETH: string; rswETH: string; }, adapters?: { [side: string]: { name: string; index: number; }[]; }); initializePricing(blockNumber: number): Promise; isEligibleSwap(srcToken: Token | string, destToken: Token | string, side: SwapSide): boolean; assertEligibility(srcToken: Token | string, destToken: Token | string, side: SwapSide): void; getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise; getPricesVolume(srcToken: Token, destToken: Token, amountsIn: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[] | undefined, transferFees?: TransferFeeParams | undefined, isFirstSwap?: boolean | undefined): Promise | null>; getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: SwellData, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: SwellData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: SwellData, side: SwapSide): DexExchangeParam; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getTopPoolsForToken(tokenAddress: string, limit: number): AsyncOrSync; }