// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; import "../RouteTypesV2.sol"; import "../LiquidityPoolETH.sol"; interface IEnhancedSwapRouterV2 { function executeRoute( RouteTypesV2.RoutePlan calldata plan ) external payable returns (uint256 amountOut); function quoteConfiguredProviders( address tokenIn, address tokenOut, uint256 amountIn ) external view returns (RouteTypesV2.ProviderQuote[] memory quotes); function swapTokenToToken( address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOutMin ) external returns (uint256 amountOut); function swapToStablecoin( LiquidityPoolETH.AssetType inputAsset, address stablecoinToken, uint256 amountIn, uint256 amountOutMin ) external payable returns (uint256 amountOut); }