//SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.16; import "../storage/QuadGovernanceStore.sol"; interface IQuadGovernance { event AttributePriceUpdatedFixed(bytes32 _attribute, uint256 _oldPrice, uint256 _price); event BusinessAttributePriceUpdatedFixed(bytes32 _attribute, uint256 _oldPrice, uint256 _price); event EligibleTokenUpdated(uint256 _tokenId, bool _eligibleStatus); event EligibleAttributeUpdated(bytes32 _attribute, bool _eligibleStatus); event EligibleAttributeByDIDUpdated(bytes32 _attribute, bool _eligibleStatus); event IssuerAdded(address indexed _issuer, address indexed _newTreasury); event IssuerDeleted(address indexed _issuer); event IssuerStatusChanged(address indexed issuer, bool newStatus); event IssuerAttributePermission(address indexed issuer, bytes32 _attribute, bool _permission); event PassportAddressUpdated(address indexed _oldAddress, address indexed _address); event RevenueSplitIssuerUpdated(uint256 _oldSplit, uint256 _split); event TreasuryUpdated(address indexed _oldAddress, address indexed _address); function setTreasury(address _treasury) external; function setPassportContractAddress(address _passportAddr) external; function updateGovernanceInPassport(address _newGovernance) external; function setEligibleTokenId(uint256 _tokenId, bool _eligibleStatus, string memory _uri) external; function setEligibleAttribute(bytes32 _attribute, bool _eligibleStatus) external; function setEligibleAttributeByDID(bytes32 _attribute, bool _eligibleStatus) external; function setAttributePriceFixed(bytes32 _attribute, uint256 _price) external; function setBusinessAttributePriceFixed(bytes32 _attribute, uint256 _price) external; function setRevSplitIssuer(uint256 _split) external; function addIssuer(address _issuer, address _treasury) external; function deleteIssuer(address _issuer) external; function setIssuerStatus(address _issuer, bool _status) external; function setIssuerAttributePermission(address _issuer, bytes32 _attribute, bool _permission) external; function getEligibleAttributesLength() external view returns(uint256); function getMaxEligibleTokenId() external view returns(uint256); function eligibleTokenId(uint256) external view returns(bool); function issuersTreasury(address) external view returns (address); function eligibleAttributes(bytes32) external view returns(bool); function eligibleAttributesByDID(bytes32) external view returns(bool); function eligibleAttributesArray(uint256) external view returns(bytes32); function pricePerAttributeFixed(bytes32) external view returns(uint256); function pricePerBusinessAttributeFixed(bytes32) external view returns(uint256); function revSplitIssuer() external view returns (uint256); function treasury() external view returns (address); function getIssuersLength() external view returns (uint256); function getIssuers() external view returns (address[] memory); function issuers(uint256) external view returns(address); function getIssuerStatus(address _issuer) external view returns(bool); function getIssuerAttributePermission(address _issuer, bytes32 _attribute) external view returns(bool); }