//SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.16; import "./IQuadPassportStore.sol"; import "./IQuadSoulbound.sol"; interface IQuadPassport is IQuadSoulbound { event GovernanceUpdated(address indexed _oldGovernance, address indexed _governance); event SetPendingGovernance(address indexed _pendingGovernance); event SetAttributeReceipt(address indexed _account, address indexed _issuer, uint256 _fee); event BurnPassportsIssuer(address indexed _issuer, address indexed _account); event WithdrawEvent(address indexed _issuer, address indexed _treasury, uint256 _fee); function setAttributes( IQuadPassportStore.AttributeSetterConfig memory _config, bytes calldata _sigIssuer, bytes calldata _sigAccount ) external payable; function setAttributesIssuer( address _account, IQuadPassportStore.AttributeSetterConfig memory _config, bytes calldata _sigIssuer ) external payable; function burnPassports() external; function burnPassportsIssuer(address _account) external; function setGovernance(address _governanceContract) external; function acceptGovernance() external; function attributes(address _account, bytes32 _attribute) external view returns (IQuadPassportStore.Attribute[] memory); function withdraw(address payable _to, uint256 _amount) external; function passportPaused() external view returns(bool); function setTokenURI(uint256 _tokenId, string memory _uri) external; }