// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface ILiquidityProvider { function getQuote(address tokenIn, address tokenOut, uint256 amountIn) external view returns (uint256 amountOut, uint256 slippageBps); function executeSwap(address tokenIn, address tokenOut, uint256 amountIn, uint256 minAmountOut) external returns (uint256 amountOut); function supportsTokenPair(address tokenIn, address tokenOut) external view returns (bool); function providerName() external pure returns (string memory); function estimateGas(address tokenIn, address tokenOut, uint256 amountIn) external view returns (uint256); }