interface IFlashLoanReceiver {

    /**
   * @dev execute caller's logic after borrowed tokens
   * @param _token the address of the reserve in which the flashloan is happening
   * @param _amount amount of the flashloan tokens
   * @param _loanFee flashloan fee of this transaction
   * @param _data the data from caller
   **/
    function mushroomsFlashloan(address _token, uint256 _amount, uint256 _loanFee, bytes calldata _data) external;
}
/**
 * @title IFlashLoanReceiver interface
 * @notice Interface for the Mushrooms fee IFlashLoanReceiver.
 * @author Mushrooms
 * @dev implement this interface to develop a flashloan-compatible flashLoanReceiver contract
 **/
function mushroomsFlashloan(address _token, uint256 _amount, uint256 _loanFee, bytes calldata _data) external;

/**
 * @dev execute caller's logic after borrowed tokens
 * @param _token the address of the reserve in which the flashloan is happening
 * @param _amount amount of the flashloan tokens
 * @param _loanFee flashloan fee of this transaction
 * @param _data the data from caller
 **/