// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/**
 * @title IeMoneyJoin
 * @notice Interface for eMoney Join Adapter
 * @dev Handles minting and burning of eMoney tokens
 */
interface IeMoneyJoin {
    /**
     * @notice Mint eMoney to a borrower
     * @param currency eMoney currency address
     * @param to Recipient address
     * @param amount Amount to mint
     */
    function mint(address currency, address to, uint256 amount) external;

    /**
     * @notice Burn eMoney from a repayer
     * @param currency eMoney currency address
     * @param from Source address
     * @param amount Amount to burn
     */
    function burn(address currency, address from, uint256 amount) external;

    event eMoneyMinted(address indexed currency, address indexed to, uint256 amount);
    event eMoneyBurned(address indexed currency, address indexed from, uint256 amount);
}
