// SPDX-License-Identifier: UNLICENSED pragma solidity >=0.8.18; interface IEventHub { function acceptEvent(address tokenAddress, uint256 eventId, address walletProvider) external; function createAndAcceptEvent(address tokenAddress, uint256 eventId, uint256 tokenId, bytes32 imprint, string memory uri, address creatorProvider) external; function createEvent(address tokenAddress, uint256 eventId, uint256 tokenId, bytes32 imprint, string memory uri, address creatorProvider) external; function creditManager() external view returns (address); function destroyEvent(address tokenAddress, uint256 eventId) external; function eventIdToEventsIndex(address, uint256) external view returns (uint256); function events( address, uint256 ) external view returns (uint256 tokenId, string memory uri, bytes32 imprint, uint256 destroyLimitTimestamp, address issuer, bool accepted, uint256 batchIndex); function getEventData(address tokenAddress, uint256 eventId) external view returns (Event memory); function refuseEvent(address tokenAddress, uint256 eventId) external; function rulesManager() external view returns (address); function tokenIdToEvents(address, uint256, uint256) external view returns (uint256); struct Event { uint256 tokenId; string uri; bytes32 imprint; uint256 destroyLimitTimestamp; address issuer; bool accepted; uint256 batchIndex; } }