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

/**
 * @title IStablecoinPegManager
 * @notice Interface for Stablecoin Peg Manager
 */
interface IStablecoinPegManager {
    struct PegStatus {
        uint256 currentPrice;
        uint256 targetPrice;
        int256 deviationBps; // Can be negative
        bool isMaintained;
    }

    function checkUSDpeg(address stablecoin) external view returns (bool isMaintained, int256 deviationBps);
    function checkETHpeg(address weth) external view returns (bool isMaintained, int256 deviationBps);
    function calculateDeviation(address asset, uint256 currentPrice, uint256 targetPrice) external pure returns (int256 deviationBps);
    function getPegStatus(address asset) external view returns (uint256 currentPrice, uint256 targetPrice, int256 deviationBps, bool isMaintained);
    function getSupportedAssets() external view returns (address[] memory);
}

