// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; /** * @title IAggregator Interface * @notice Interface for Chainlink-compatible oracle aggregator * @dev Based on Chainlink AggregatorV3Interface */ interface IAggregator { /** * @notice Get the latest answer * @return answer Latest answer */ function latestAnswer() external view returns (int256); /** * @notice Get the latest round data * @return roundId Round ID * @return answer Answer * @return startedAt Started at timestamp * @return updatedAt Updated at timestamp * @return answeredInRound Answered in round */ function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); /** * @notice Get round data for a specific round * @param _roundId Round ID * @return roundId Round ID * @return answer Answer * @return startedAt Started at timestamp * @return updatedAt Updated at timestamp * @return answeredInRound Answered in round */ function getRoundData(uint80 _roundId) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); /** * @notice Update the answer (for transmitters) * @param answer New answer value */ function updateAnswer(uint256 answer) external; /** * @notice Get decimals * @return decimals Number of decimals */ function decimals() external view returns (uint8); /** * @notice Get description * @return description Description */ function description() external view returns (string memory); /** * @notice Get version * @return version Version */ function version() external view returns (uint256); }