import { MultiRoute, RPool } from '../tines'; import { ChainId } from '../chain'; import { Type } from '../currency'; import { Address, Hex } from 'viem'; import { PermitData } from './TinesToRouteProcessor2'; import { LiquidityProviders } from './liquidity-providers/LiquidityProvider'; import { PoolCode } from './pools/PoolCode'; export interface RPParams { tokenIn: Address; amountIn: bigint; tokenOut: Address; amountOutMin: bigint; to: Address; routeCode: Hex; value?: bigint; } export type PoolFilter = (list: RPool) => boolean; export declare class Router { static findRouteType(poolCodesMap: Map, addresses: string[]): "Unknown" | "Internal" | "Mix" | "External"; static findBestRoute(poolCodesMap: Map, chainId: ChainId, fromToken: Type, amountIn: bigint, toToken: Type, gasPrice: number, maxFlowNumber?: number, providers?: LiquidityProviders[], // all providers if undefined poolFilter?: PoolFilter): MultiRoute; static routeProcessorParams(poolCodesMap: Map, route: MultiRoute, fromToken: Type, toToken: Type, to: Address, RPAddr: Address, maxPriceImpact?: number): RPParams; static routeProcessor2Params(poolCodesMap: Map, route: MultiRoute, fromToken: Type, toToken: Type, to: Address, RPAddr: Address, permits?: PermitData[], maxPriceImpact?: number): RPParams; static routeProcessor3Params: typeof Router.routeProcessor2Params; static routeProcessor3_1Params: typeof Router.routeProcessor2Params; static routeProcessor3_2Params: typeof Router.routeProcessor2Params; static routeProcessor4Params(poolCodesMap: Map, route: MultiRoute, fromToken: Type, toToken: Type, to: Address, RPAddr: Address, permits?: PermitData[], maxPriceImpact?: number): RPParams; static routeToHumanString(poolCodesMap: Map, route: MultiRoute, fromToken: Type, toToken: Type, shiftPrimary?: string, shiftSub?: string): string; } export declare function tokenQuantityString(token: Type, amount: bigint): string;