// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/interfaces/IERC165.sol"; import "../listing-terms-registry/IListingTermsRegistry.sol"; import "../../asset/Assets.sol"; import "../Listings.sol"; import "../../renting/Rentings.sol"; interface IListingConfiguratorController is IERC165 { error ListingTermsNotFound(IListingTermsRegistry.ListingTerms listingTerms); function validateListing( Assets.Asset[] calldata assets, Listings.Params calldata params, uint32 maxLockPeriod, bool immediatePayout ) external view; function validateRenting( Rentings.Params calldata params, Listings.Listing calldata listing, uint256 universeId ) external view; function getERC20RewardTarget(Listings.Listing calldata listing) external view returns (address); }