import { BaseURI, BigNumberString, ConsentFactoryContractError, ConsentName, EVMAccountAddress, EVMContractAddress, MarketplaceListing, MarketplaceTag, BlockchainCommonErrors, TransactionResponseError } from "@snickerdoodlelabs/objects"; import { ResultAsync } from "neverthrow"; import { IBaseContract } from "../interfaces/IBaseContract.js"; import { IContentFactoryContract } from "../interfaces/IContentFactoryContract.js"; import { IERC7529Contract } from "../interfaces/IERC7529Contract.js"; import { WrappedTransactionResponse, ContractOverrides } from "../interfaces/objects/index.js"; export interface IConsentFactoryContract extends IBaseContract, IERC7529Contract, IContentFactoryContract { /** * Creates a consent contract for user * @param ownerAddress Address of the owner of the Consent contract instance * @param baseUri Base uri for the for the Consent contract instance * @param name Name for the for the Consent contract instance * @param overrides Any transaction call overrides */ createConsent(ownerAddress: EVMAccountAddress, baseUri: BaseURI, overrides?: ContractOverrides): ResultAsync; setListingDuration(listingDuration: number, overrides?: ContractOverrides): ResultAsync; setMaxTagsPerListing(maxTagsPerListing: number, overrides?: ContractOverrides): ResultAsync; registerStakingToken(stakingToken: EVMContractAddress, overrides?: ContractOverrides): ResultAsync; adminRemoveListings(tag: MarketplaceTag, stakingToken: EVMContractAddress, removedSlot: BigNumberString[], overrides?: ContractOverrides): ResultAsync; blockContentObject(stakingToken: EVMContractAddress, contentAddress: EVMContractAddress, overrides?: ContractOverrides): ResultAsync; unblockContentObject(stakingToken: EVMContractAddress, contentAddress: EVMContractAddress, overrides?: ContractOverrides): ResultAsync; /** * Return the amount of gas required to create a Consent contract * @param ownerAddress Address of the user * @param baseUri URI for consent contract * @param name Name of the consent contract */ estimateGasToCreateConsent(ownerAddress: EVMAccountAddress, baseUri: BaseURI, name: ConsentName): ResultAsync; /** * Return Consent addresses by checking ContractDeployed event logs */ getDeployedConsents(): ResultAsync; getListingsByTag(tag: MarketplaceTag, stakingToken: EVMContractAddress, removeExpired: boolean): ResultAsync; getAddressOfConsentCreated(txRes: WrappedTransactionResponse): ResultAsync; removeExpiredListings(tag: MarketplaceTag, stakingToken: EVMContractAddress, slots: BigNumberString[], overrides?: ContractOverrides): ResultAsync; } export declare const IConsentFactoryContractType: unique symbol; //# sourceMappingURL=IConsentFactoryContract.d.ts.map