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

import "./IRWAToken.sol";

/**
 * @title IRWATokenRegistry
 * @notice Canonical registry for deployed Li* RWA index tokens on a chain.
 */
interface IRWATokenRegistry {
    struct IndexRecord {
        address token;
        string indexTicker;
        string symbol;
        IRWAToken.Classification classification;
        bool isActive;
        uint256 registeredAt;
    }

    function registerIndex(
        string calldata indexTicker,
        address token,
        string calldata symbol
    ) external;

    function getToken(string calldata indexTicker) external view returns (address);
    function getRecord(string calldata indexTicker) external view returns (IndexRecord memory);
    function isRegistered(string calldata indexTicker) external view returns (bool);
    function deactivateIndex(string calldata indexTicker) external;

    event IndexRegistered(string indexed indexTicker, address indexed token, string symbol);
    event IndexDeactivated(string indexed indexTicker, address indexed token);
}
