import { SimpleExchange } from '../simple-exchange'; import { Context, IDex } from '../idex'; import { SparkParams, SparkData, SparkSDaiPoolState } from './types'; import { Network, SwapSide } from '../../constants'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, Logger, NumberAsString, PoolLiquidity, PoolPrices, SimpleExchangeParam, Token } from '../../types'; import { IDexHelper } from '../../dex-helper'; import { Interface } from 'ethers/lib/utils'; import { SparkSDaiEventPool } from './spark-sdai-pool'; export declare class Spark extends SimpleExchange implements IDex { protected network: Network; readonly dexHelper: IDexHelper; protected readonly config: SparkParams; readonly daiAddress: string; readonly sdaiAddress: string; readonly potAddress: string; readonly abiInterface: Interface; protected adapters: { [side: string]: { name: string; index: number; }[]; }; protected sdaiInterface: Interface; protected swapFunctions: typeof import("./types").SparkSDaiFunctions | typeof import("./types").SparkSUSDSFunctions | typeof import("./types").SparkSUSDSPsmFunctions; protected referralCode: string | null; readonly hasConstantPriceLargeAmounts = true; readonly isFeeOnTransferSupported = false; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; readonly eventPool: SparkSDaiEventPool; logger: Logger; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, config?: SparkParams, daiAddress?: string, sdaiAddress?: string, potAddress?: string, abiInterface?: Interface, adapters?: { [side: string]: { name: string; index: number; }[]; }, sdaiInterface?: Interface, swapFunctions?: typeof import("./types").SparkSDaiFunctions | typeof import("./types").SparkSUSDSFunctions | typeof import("./types").SparkSUSDSPsmFunctions, referralCode?: string | null); getAdapters(side: SwapSide): { name: string; index: number; }[] | null; isSDai(tokenAddress: Address): boolean; isDai(tokenAddress: Address): boolean; isAppropriatePair(srcToken: Token, destToken: Token): boolean; initializePricing(blockNumber: number): Promise; getPoolIdentifier(): string; getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SparkData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: SparkData, side: SwapSide, _: Context, executorAddress: Address): DexExchangeParam; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SparkData, side: SwapSide): AdapterExchangeParam; previewRedeem(shares: bigint, state: SparkSDaiPoolState): bigint; previewMint(shares: bigint, state: SparkSDaiPoolState): bigint; previewWithdraw(assets: bigint, state: SparkSDaiPoolState): bigint; previewDeposit(assets: bigint, state: SparkSDaiPoolState): bigint; divUp(x: bigint, y: bigint): bigint; }