import { tokenTypes } from '../Fct/plugins/allowanceRequiredProtocols'; import { UniswapV3 as UniswapV3Helper } from '../Fct/plugins/uniswapV3/helpers/UniswapV3'; import { Tokens } from '../Fct/tokens/tokens'; import { createPlugin, NewPluginType } from './createPlugin'; import { ERRORS } from './errors'; import { ChainId, DefaultProtocols, FctParam, OmitMethodParams, ParamJSONData, Type } from './generics'; import { getSwapPath, getTokenDecimals } from './getSwapPath'; import { getMethodInterface } from './helpers'; import { OneInchHelper as InchHelper } from './plugins/1inch/helpers'; import { AaveHelper } from './plugins/AaveV2/helpers/AaveHelper'; import { ChainLinkHelper } from './plugins/chainLink/helpers/ChainLinkHelper'; import { ParaswapHelper } from './plugins/paraswap/helpers/Paraswap'; import { Sushiswap as SushiswapHelper } from './plugins/sushiswap/helpers/Sushiswap'; import { Uniswap as UniswapHelper } from './plugins/uniswap/helpers/Uniswap'; import { getPluginsFromABI } from './plugins/utility/helpers/Utility'; import { Utils } from './tokens/Utils'; import type { JsonRpcProvider } from '@ethersproject/providers'; import { MulticallProtocol } from './plugins/Multicall/generic/Multicall'; export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; type AllPlugins = ReturnType>; type Plugins = { name: string; plugin: AllPlugins; description?: string; }[]; declare const allPlugins: Plugins; type PluginInstance = InstanceType; type Keys = keyof OmitMethodParams>; type InputParamsTypes = Record>[Keys]>; type MethodParamsKeys = keyof UnionToIntersection; type InputMethodParamsTypes = Record[MethodParamsKeys]>; type OutputKeys = keyof UnionToIntersection; type PluginOutputParams = Partial[OutputKeys]>>; type PluginInputParams = Partial & { methodParams: Partial; }; type PluginType = PluginInstance['type']; type PluginProtocol = PluginInstance['protocol'] | DefaultProtocols; type PluginMethod = PluginInstance['method']; type PluginName = PluginInstance['name']; type GroupBy = { type?: PluginType; protocol?: PluginProtocol; methodInterface?: string; methodInterfaceHash?: string; method?: PluginMethod; name?: PluginName; }; type ExcludeBy = { type?: PluginType[]; protocol?: PluginProtocol[]; methodInterface?: string[]; methodInterfaceHash?: string[]; method?: PluginMethod[]; name?: PluginName[]; }; declare const getPlugins: ({ by, excludeBy }: { by?: GroupBy | undefined; excludeBy?: ExcludeBy | undefined; }) => Plugins; declare const useChainId:

>>({ plugin, chainId }: { plugin: P; chainId: ChainId; }) => P; declare const SWAP_WITHOUT_SLIPPAGE_METHOD: { swapExactETHForTokens: string; swapExactTokensForETH: string; swapETHForExactTokens: string; swapTokensForExactETH: string; swapExactTokensForTokens: string; swapTokensForExactTokens: string; }; declare const SIMPLE_ADD_LIQUIDITY_METHOD: { addLiquidity: string; addLiquidityTokenEth: string; addLiquidityEthToken: string; }; export declare const getPluginInstanceFrom: ({ json, chainId, vaultAddress, walletAddress, provider, }: { json: ReturnType; chainId: ChainId; vaultAddress?: string | undefined; walletAddress?: string | undefined; provider?: JsonRpcProvider | undefined; }) => { instance: NewPluginType>; details: { name: string; plugin: AllPlugins; description?: string | undefined; }; } | undefined; export { allPlugins, AaveHelper, ChainLinkHelper, ERRORS, FctParam, getMethodInterface, getPlugins, getPluginsFromABI, getSwapPath, getTokenDecimals, InchHelper, ParaswapHelper, SIMPLE_ADD_LIQUIDITY_METHOD, SushiswapHelper, SWAP_WITHOUT_SLIPPAGE_METHOD, Tokens, tokenTypes, UniswapHelper, UniswapV3Helper, useChainId, Utils, }; export * from './pluginsExport'; export * from '../Fct/generics/FctParams'; export * from '../Fct/tokens'; export type { AllPlugins, NewPluginType, ParamJSONData, PluginInputParams, PluginInstance, PluginMethod, PluginOutputParams, PluginProtocol, PluginType, };