// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.0; /// @notice Trident pool router interface. interface ITridentRouter { struct Path { address pool; bytes data; } struct ExactInputSingleParams { uint256 amountIn; uint256 amountOutMinimum; address pool; address tokenIn; bytes data; } struct ExactInputParams { address tokenIn; uint256 amountIn; uint256 amountOutMinimum; Path[] path; } struct TokenInput { address token; bool native; uint256 amount; } struct InitialPath { address tokenIn; address pool; bool native; uint256 amount; bytes data; } struct PercentagePath { address tokenIn; address pool; uint64 balancePercentage; // Multiplied by 10^6. 100% = 100_000_000 bytes data; } struct Output { address token; address to; bool unwrapBento; uint256 minAmount; } struct ComplexPathParams { InitialPath[] initialPath; PercentagePath[] percentagePath; Output[] output; } }