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

import "../RWAStorage.sol";

interface IRWAInstrumentFacet {
    event IssuanceModeSet(bytes32 indexed assetId, RWAStorage.IssuanceMode mode);
    event InstrumentIdentitySet(
        bytes32 indexed assetId,
        bytes32 isinHash,
        bytes32 cusipHash,
        bytes32 issuerLeiHash
    );
    event TokenPointerSet(bytes32 indexed assetId, address token);

    function setIssuanceMode(bytes32 assetId, RWAStorage.IssuanceMode mode) external;
    function setInstrumentIdentity(
        bytes32 assetId,
        bytes32 isinHash,
        bytes32 cusipHash,
        bytes32 issuerLeiHash,
        bytes32 underlyingIsinHash
    ) external;
    function setTokenPointer(bytes32 assetId, address token) external;
    function getIssuanceMode(bytes32 assetId) external view returns (RWAStorage.IssuanceMode);
    function getTokenPointer(bytes32 assetId) external view returns (address);
}
