// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
import "@thirdweb-dev/contracts/eip/ERC1155.sol";
import "@thirdweb-dev/contracts/extension/LazyMint.sol";
import "@thirdweb-dev/contracts/extension/interface/IClaimableERC1155.sol";
 
contract Contract is ERC1155, LazyMint, IClaimableERC1155 {
    constructor(
        string memory _name,
        string memory _symbol
    )
        ERC1155(
            _name,
            _symbol
        )
    {}
 
    function _canLazyMint() internal view override returns (bool) {
        // Your custom implementation here
    }
 
    function _canSetClaimConditions() internal view override returns (bool) {
        // Your custom implementation here
    }
 
    function _collectPriceOnClaim(
        address _primarySaleRecipient,
        uint256 _quantityToClaim,
        address _currency,
        uint256 _pricePerToken
    ) internal virtual override {
        // Your custom implementation here
    }
 
    function _transferTokensOnClaim(address _to, uint256 _quantityBeingClaimed)
        internal
        virtual
        override
        returns (uint256 startTokenId)
    {
        // Your custom implementation here
    }
 
    function claim(address _receiver, uint256 _quantity) external payable override {
        // Your custom implementation here
    }
 
    function verifyClaim(address _claimer, uint256 _quantity) external view override {
        // Your custom implementation here
    }
}