import { type IRoutingPlan } from "../common/routingPlan.js"; import type { SwapOptions } from "../utils.js"; export interface IEncodeOptions { slippageTolerance?: number; amountOutMinimum?: bigint; recipientAddress?: string; deadline?: bigint; wrapInput?: boolean; unwrapOutput?: boolean; } export interface IResolvedEncodeOptions { amountOutMinimum: bigint; wrapInput: boolean; unwrapOutput: boolean; deadline: bigint | undefined; } export interface IRouterInfo { name: string; chainId: number; routerAddress: string; tokenProxyAddress: string | undefined; } export interface IRouter extends IRouterInfo { encode: (routingPlan: IRoutingPlan, options: IEncodeOptions, swapOptions: SwapOptions) => string; }