import { Interface } from '@ethersproject/abi'; import { NumberAsString, OptimalSwapExchange } from '@paraswap/core'; import BigNumber from 'bignumber.js'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, PoolLiquidity, PoolPrices, PreprocessTransactionOptions, SimpleExchangeParam, Token, TransferFeeParams, TxInfo } from '../../types'; import { Network, SwapSide } from '../../constants'; import { CurvePool } from './pools/curve-pool'; import { CurveMetapool } from './pools/curve-metapool'; import { SimpleExchange } from '../simple-exchange'; import { IDex } from '../idex'; import { IDexHelper } from '../../dex-helper'; import { MultiResult } from '../../lib/multi-wrapper'; import { PoolConfig, CurveV1Data, TokenWithReasonableVolume, DirectCurveV1Param, DirectCurveV1ParamV6, CurveV1DirectSwap, ApiPool } from './types'; export declare class CurveV1 extends SimpleExchange implements IDex { protected network: Network; protected dexHelper: IDexHelper; protected adapters: import("../../types").AdapterMappings; exchangeRouterInterface: Interface; minConversionRate: string; eventPools: (CurveMetapool | CurvePool)[]; private poolInitPromises; poolInterface: Interface; private logger; readonly hasConstantPriceLargeAmounts = false; readonly isFeeOnTransferSupported = true; private decimalsCoinsAndUnderlying; protected pools: Record; protected allApiPools: ApiPool[]; protected eventSupportedPools: string[]; protected baseTokens: Record; protected disableFeeOnTransferTokenAddresses: Set; readonly directSwapIface: Interface; readonly SRC_TOKEN_DEX_TRANSFERS = 1; readonly DEST_TOKEN_DEX_TRANSFERS = 1; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, dexConfig?: import("./types").DexParams, adapters?: import("../../types").AdapterMappings); protected getPoolByAddress(address: Address): CurveMetapool | CurvePool | null; getPoolConfig(from: Token, to: Token): PoolConfig | undefined; getPoolConfigs(from: Token, to: Token): PoolConfig[]; getPoolIdentifiers(_from: Token, _to: Token, side: SwapSide, blockNumber: number): Promise; poolConfigsByAddress(): any; getOnChainChunks(from: Token, to: Token, srcAmount: bigint, defaultChunks: number): number; getEventPoolInstance(poolAddress: Address): CurvePool | CurveMetapool | null; batchCatchUpPools(poolAddresses: string[], blockNumber: number): Promise; private _batchInitializePools; getRatesEventPools(fromToken: Token, toToken: Token, amounts: BigNumber[], fromBigNumbers: number, pools: string[], indexes: [number, number, number][], blockNumber: number): Promise; getRatesOnChain(fromToken: Token, toToken: Token, amounts: bigint[], pools: string[], indexes: [number, number, number][], blockNumber: number): Promise<{ rates: bigint[]; exchange: string; }[]>; protected noMorePrice(prices: BigNumber[], index: number): boolean; getRatesEventPool(exchange: string, curveIndexes: number[], amounts: BigNumber[], fromBigNumbers: number, blockNumber: number): bigint[]; isEventPoolSupported(poolAddress: Address): Boolean; getPoolIdentifier(name: string): string; getPricesVolume(_from: Token, _to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise | null>; getSwapIndexes(from: Token, to: Token, pool?: PoolConfig): [number, number, number]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CurveV1Data, side: SwapSide): AdapterExchangeParam; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; static getDirectFunctionName(): string[]; preProcessTransaction(optimalSwapExchange: OptimalSwapExchange, srcToken: Token, _0: Token, _1: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange, ExchangeTxInfo]>; getDirectParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, expectedAmount: NumberAsString, data: CurveV1Data, side: SwapSide, permit: string, uuid: string, feePercent: NumberAsString, deadline: NumberAsString, partner: string, beneficiary: string, contractMethod: string): TxInfo; getDirectParamV6(srcToken: Address, destToken: Address, fromAmount: NumberAsString, toAmount: NumberAsString, quotedAmount: NumberAsString, data: CurveV1Data, side: SwapSide, permit: string, uuid: string, partnerAndFee: string, beneficiary: string, blockNumber: number, contractMethod: string): { encoder: (params: DirectCurveV1ParamV6, partnerAndFee: string, permit: string) => string; params: CurveV1DirectSwap; networkFee: string; }; static getDirectFunctionNameV6(): string[]; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: CurveV1Data, side: SwapSide): DexExchangeParam; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CurveV1Data, side: SwapSide): Promise; updateBaseTokenPrice(): Promise; fetchDecimals(): Promise[]>; fetchAllPools(): Promise; fetchAllApiPools(): Promise; updatePoolState(): Promise; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; }