// SPDX-License-Identifier: UNLICENSED pragma solidity >=0.8.18; interface IRulesManager { function addEventGlobalAllowlist(address tokenAddress, address[] memory addresses) external; function addMsgGlobalAllowlist(address tokenAddress, address[] memory addresses) external; function addMsgPerTokenAllowlist(address tokenAddress, uint256 tokenId, address[] memory addresses) external; function addMsgPerTokenBlacklist(address tokenAddress, uint256 tokenId, address[] memory addresses) external; function eventGlobalAllowlist(address, address) external view returns (bool); function isAllowedEventEmitter(address tokenAddress, address sender) external view returns (bool); function isAllowedMsgSender(address tokenAddress, uint256 tokenId, address sender) external view returns (bool); function msgGlobalAllowlist(address, address) external view returns (bool); function removeEventGlobalAllowlist(address tokenAddress, address[] memory addresses) external; function removeMsgGlobalAllowlist(address tokenAddress, address[] memory addresses) external; function removeMsgPerTokenAllowlist(address tokenAddress, uint256 tokenId, address[] memory addresses) external; function removeMsgPerTokenBlacklist(address tokenAddress, uint256 tokenId, address[] memory addresses) external; function toggleFeatures(address tokenAddress, bool msgEnabled, bool eventEnabled) external; function tokenToTokenRules(address) external view returns (bool msgEnabled, bool eventEnabled, bool eventAllowlistActive); }