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

/**
 * @title ICommodityPegManager
 * @notice Interface for Commodity Peg Manager
 */
interface ICommodityPegManager {
    struct CommodityPegStatus {
        uint256 currentPrice;
        uint256 targetPrice;
        int256 deviationBps;
        bool isMaintained;
    }

    function registerCommodity(address commodity, string memory symbol, uint256 xauRate) external returns (bool);
    function checkCommodityPeg(address commodity) external view returns (bool isMaintained, int256 deviationBps);
    function triangulateViaXAU(address commodity, uint256 amount, address targetCurrency) external view returns (uint256 targetAmount);
    function getCommodityPrice(address commodity, address targetCurrency) external view returns (uint256 price);
    function getCommodityPegStatus(address commodity) external view returns (uint256 currentPrice, uint256 targetPrice, int256 deviationBps, bool isMaintained);
    function getSupportedCommodities() external view returns (address[] memory);
}

