import { providers } from 'ethers'; import { Config, SwapTokenLogicFields, SwapTokenLogicOptions, SwapTokenLogicParams } from './types'; import { Currency, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'; import { FeeAmount, Pool, Route } from '@uniswap/v3-sdk'; import * as core from '@protocolink/core'; export interface LogicOptions { chainId: number; provider?: providers.Provider; config: Config; } export declare abstract class SwapTokenLogic extends core.Logic { readonly config: Config; constructor({ chainId, provider, config }: LogicOptions); quote(params: SwapTokenLogicParams): Promise; build(fields: SwapTokenLogicFields, options: SwapTokenLogicOptions): Promise<{ to: string; data: string; inputs: core.DataType.InputStruct[]; wrapMode: number; approveTo: string; callback: string; }>; getBestTrade(tradeType: TradeType, amountSpecified: CurrencyAmount, otherCurrency: Currency): Promise<{ route: Route; inputAmount: CurrencyAmount; outputAmount: CurrencyAmount; }>; getAllRoutes(currencyIn: Currency, currencyOut: Currency): Promise[]>; getPools(currencyIn: Currency, currencyOut: Currency): Promise; getAllCurrencyCombinations(currencyA: Currency, currencyB: Currency): [Token, Token][]; getAllCurrencyCombinationsWithAllFees(currencyIn: Currency, currencyOut: Currency): [Token, Token, FeeAmount][]; poolEquals(poolA: Pool, poolB: Pool): boolean; computeAllRoutes(currencyIn: Currency, currencyOut: Currency, pools: Pool[], currentPath?: Pool[], allPaths?: Route[], startCurrencyIn?: Currency, maxHops?: number): Route[]; abstract computePoolAddress({ factoryAddress, tokenA, tokenB, fee, initCodeHashManualOverride, }: { factoryAddress: string; tokenA: Token; tokenB: Token; fee: FeeAmount; initCodeHashManualOverride?: string; }): Promise; }