// SPDX-License-Identifier: AGPL-3.0-only pragma solidity 0.8.10; /** * @title ICollectNFT * @author Lens Protocol * * @notice This is the interface for the CollectNFT contract. Which is cloned upon the first collect for any given * publication. */ interface ICollectNFT { /** * @notice Initializes the collect NFT, setting the feed as the privileged minter, storing the collected publication pointer * and initializing the name and symbol in the LensNFTBase contract. * * @param profileId The token ID of the profile in the hub that this collectNFT points to. * @param pubId The profile publication ID in the hub that this collectNFT points to. * @param name The name to set for this NFT. * @param symbol The symbol to set for this NFT. */ function initialize( uint256 profileId, uint256 pubId, string calldata name, string calldata symbol ) external; /** * @notice Mints a collect NFT to the specified address. This can only be called by the hub, and is called * upon collection. * * @param to The address to mint the NFT to. */ function mint(address to) external; /** * @notice Returns the source publication pointer mapped to this collect NFT. * * @return First the profile ID uint256, and second the pubId uint256. */ function getSourcePublicationPointer() external view returns (uint256, uint256); }