// Interface generated by solface: <https://github.com/bugout-dev/solface>
// solface version: 0.0.5
// Interface ID: dbbee324
interface ITerminus {
// structs
// events
event ApprovalForAll(address account, address operator, bool approved);
event PoolMintBatch(uint256 id, address operator, address from, address[] toAddresses, uint256[] amounts);
event TransferBatch(address operator, address from, address to, uint256[] ids, uint256[] values);
event TransferSingle(address operator, address from, address to, uint256 id, uint256 value);
event URI(string value, uint256 id);
// functions
// Selector: 85bc82e2
function approveForPool(uint256 poolID, address operator) external ;
// Selector: 00fdd58e
function balanceOf(address account, uint256 id) external view returns (uint256);
// Selector: 4e1273f4
function balanceOfBatch(address[] memory accounts, uint256[] memory ids) external view returns (uint256[] memory);
// Selector: f5298aca
function burn(address from, uint256 poolID, uint256 amount) external ;
// Selector: e8a3d485
function contractURI() external view returns (string memory);
// Selector: 3bad2d82
function createPoolV1(uint256 _capacity, bool _transferable, bool _burnable) external returns (uint256);
// Selector: 84fa03a1
function createPoolV2(uint256 _capacity, bool _transferable, bool _burnable, string memory poolURI) external returns (uint256);
// Selector: b507ef52
function createSimplePool(uint256 _capacity) external returns (uint256);
// Selector: e985e9c5
function isApprovedForAll(address account, address operator) external view returns (bool);
// Selector: 027b3fc2
function isApprovedForPool(uint256 poolID, address operator) external view returns (bool);
// Selector: 731133e9
function mint(address to, uint256 poolID, uint256 amount, bytes memory data) external ;
// Selector: 1f7fdffa
function mintBatch(address to, uint256[] memory poolIDs, uint256[] memory amounts, bytes memory data) external ;
// Selector: 3013ce29
function paymentToken() external view returns (address);
// Selector: 8925d013
function poolBasePrice() external view returns (uint256);
// Selector: 3c50a3c5
function poolIsBurnable(uint256 poolID) external view returns (bool);
// Selector: 69453ce9
function poolIsTransferable(uint256 poolID) external view returns (bool);
// Selector: 21adca96
function poolMintBatch(uint256 id, address[] memory toAddresses, uint256[] memory amounts) external ;
// Selector: 2eb2c2d6
function safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) external ;
// Selector: f242432a
function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes memory data) external ;
// Selector: a22cb465
function setApprovalForAll(address operator, bool approved) external ;
// Selector: 938e3d7b
function setContractURI(string memory _contractURI) external ;
// Selector: 92eefe9b
function setController(address newController) external ;
// Selector: 6a326ab1
function setPaymentToken(address newPaymentToken) external ;
// Selector: 78cf2e84
function setPoolBasePrice(uint256 newBasePrice) external ;
// Selector: 2365c859
function setPoolBurnable(uint256 poolID, bool burnable) external ;
// Selector: dc55d0b2
function setPoolController(uint256 poolID, address newController) external ;
// Selector: f3dc0a85
function setPoolTransferable(uint256 poolID, bool transferable) external ;
// Selector: 862440e2
function setURI(uint256 poolID, string memory poolURI) external ;
// Selector: 01ffc9a7
function supportsInterface(bytes4 interfaceId) external view returns (bool);
// Selector: 366e59e3
function terminusController() external view returns (address);
// Selector: 5dc8bdf8
function terminusPoolCapacity(uint256 poolID) external view returns (uint256);
// Selector: d0c402e5
function terminusPoolController(uint256 poolID) external view returns (address);
// Selector: a44cfc82
function terminusPoolSupply(uint256 poolID) external view returns (uint256);
// Selector: ab3c7e52
function totalPools() external view returns (uint256);
// Selector: 1fbeae86
function unapproveForPool(uint256 poolID, address operator) external ;
// Selector: 0e89341c
function uri(uint256 poolID) external view returns (string memory);
// Selector: 0e7afec5
function withdrawPayments(address toAddress, uint256 amount) external ;
// errors
}