interface ISNXFlashLoanTool {
    /// @notice Emitted on each burn
    /// @param sender msg.sender
    /// @param sUSDAmount Amount of sUSD debt burnt
    /// @param snxAmount Amount of SNX to sell in order to burn sUSD debt
    event Burn(address sender, uint256 sUSDAmount, uint256 snxAmount);

    /// @dev Approved DEX address
    function approvedExchange() external view returns (address);

    /// @notice Burn sUSD debt with SNX using a flash loan
    /// @dev To burn all sUSD debt, pass in type(uint256).max for sUSDAmount
    /// @param sUSDAmount Amount of sUSD debt to burn (set to type(uint256).max to burn all debt)
    /// @param snxAmount Amount of SNX to sell in order to burn sUSD debt
    /// @param exchangeData Calldata to call exchange with
    function burn(
        uint256 sUSDAmount,
        uint256 snxAmount,
        bytes calldata exchangeData
    ) external;
}
/// @author Ganesh Gautham Elango
/// @title SNX Flash Loan Tool interface
function approvedExchange() external view returns (address);

/// @dev Approved DEX address