// SPDX-License-Identifier: UNLICENSED pragma solidity >=0.8.18; interface IMessageHub { function creditManager() external view returns (address); function markMessageAsRead(address tokenAddress, uint256 messageId, address walletProvider) external; function messages( address, uint256 ) external view returns (uint256 tokenId, uint256 messageId, bytes32 imprint, address sender, address receiver, bool isRead, uint256 rewardBatchIndex); function owner() external view returns (address); function receiverToMessageIds(address, uint256) external view returns (uint256); function rulesManager() external view returns (address); function sendMessage(address tokenAddress, uint256 tokenId, uint256 messageId, bytes32 imprint, address creatorProvider) external; }