// SPDX-License-Identifier: UNLICENSED pragma solidity >=0.8.18; interface ICreditManager { function acceptedToken() external view returns (address); function ariaUsdExchangeRate() external view returns (uint256); function balanceOf(address _creditOwner, address _contract) external view returns (uint256); function buyCredit(address _contract, uint256 _quantity, address _receiver) external; function consumeCredit(address _spender, address _creatorProvider, address _consumerProvider, address _firstOwner) external; function consumeCredit(address _spender, address _creatorProvider) external returns (uint256); function creditBatches(uint256) external view returns (uint256 price, uint256 quantity, address contractAddress); function creditHistory(address, address, uint256) external view returns (uint256); function creditHistoryIndex(address, address) external view returns (uint256); function creditPriceUSD(address) external view returns (uint256); function dispatchPercent(uint256) external view returns (uint256); function exchangeModifier() external view returns (address); function getCreditPriceUsd(address _contract) external view returns (uint256); function infraAddress() external view returns (address); function protocolAddress() external view returns (address); function rewardClaim(uint256 _batchIndex, address _consumerProvider, address _firstOwner) external; function setAriaUsdExchangeRate(uint256 _ariaUsdExchangeRate) external; function setCreditPriceUsd(address _contract, uint256 _creditPriceUsd) external; function setDispatchPercent( uint8 _percentInfra, uint8 _percentCreatorProvider, uint8 _percentConsumerProvider, uint8 _percentArianeeProject, uint8 _percentFirstOwner ) external; function setExchangeModifier(address _exchangeModifier) external; function setInfraAddress(address _newInfraAddress) external; function setProtocolAddress(address _newProtocolAddress) external; function totalCredits(address, address) external view returns (uint256); }