import { Spark } from './spark'; import { Address, NumberAsString } from '@paraswap/core'; import { SparkData, SparkParams, SparkSDaiPoolState, SparkSUSDSPsmFunctions } from './types'; import { SwapSide } from '@paraswap/core/build/constants'; import { Context } from '../idex'; import { DexConfigMap, DexExchangeParam, ExchangePrices, PoolLiquidity, Token } from '../../types'; import { Network } from '../../constants'; import { Interface } from '@ethersproject/abi'; import { IDexHelper } from '../../dex-helper'; export declare const sUSDSPsmConfig: DexConfigMap; export declare class SparkPsm extends Spark { 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 SparkSUSDSPsmFunctions; protected referralCode: string | null; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; protected readonly usdcAddress: string; protected readonly daiPrecision: bigint; protected readonly sDaiPrecision: bigint; protected readonly usdcPrecision: bigint; 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 SparkSUSDSPsmFunctions, referralCode?: string | null); isUSDC(tokenAddress: Address): boolean; isAppropriateTokenAddress(tokenAddress: string): boolean; isAppropriatePair(srcToken: Token, destToken: Token): boolean; convertOneToOne(assetPrecision: bigint, convertAssetPrecision: bigint): (assets: bigint) => bigint; previewSell(srcToken: Token, destToken: Token, amounts: bigint[], state: SparkSDaiPoolState): bigint[]; previewBuy(srcToken: Token, destToken: Token, amounts: bigint[], state: SparkSDaiPoolState): bigint[]; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: SparkData, side: SwapSide, _: Context, executorAddress: Address): DexExchangeParam; }