import { ethers } from 'ethers';
import { HardhatEthersHelpers, FactoryOptions } from '@nomiclabs/hardhat-ethers/types';
import { LinkTokenInterface } from './LinkTokenInterface';
import { VRFConsumerBase } from './VRFConsumerBase';
import { AccessControlEnumerableUpgradeable } from './AccessControlEnumerableUpgradeable';
import { AccessControlUpgradeable } from './AccessControlUpgradeable';
import { IAccessControlEnumerableUpgradeable } from './IAccessControlEnumerableUpgradeable';
import { IAccessControlUpgradeable } from './IAccessControlUpgradeable';
import { ERC2771ContextUpgradeable } from './ERC2771ContextUpgradeable';
import { PausableUpgradeable } from './PausableUpgradeable';
import { ERC1155Upgradeable } from './ERC1155Upgradeable';
import { ERC1155BurnableUpgradeable } from './ERC1155BurnableUpgradeable';
import { ERC1155PausableUpgradeable } from './ERC1155PausableUpgradeable';
import { IERC1155MetadataURIUpgradeable } from './IERC1155MetadataURIUpgradeable';
import { IERC1155ReceiverUpgradeable } from './IERC1155ReceiverUpgradeable';
import { IERC1155Upgradeable } from './IERC1155Upgradeable';
import { ERC1155HolderUpgradeable } from './ERC1155HolderUpgradeable';
import { ERC1155ReceiverUpgradeable } from './ERC1155ReceiverUpgradeable';
import { ERC20Upgradeable } from './ERC20Upgradeable';
import { ERC20PermitUpgradeable } from './ERC20PermitUpgradeable';
import { IERC20PermitUpgradeable } from './IERC20PermitUpgradeable';
import { ERC20BurnableUpgradeable } from './ERC20BurnableUpgradeable';
import { ERC20PausableUpgradeable } from './ERC20PausableUpgradeable';
import { ERC20VotesUpgradeable } from './ERC20VotesUpgradeable';
import { IERC20MetadataUpgradeable } from './IERC20MetadataUpgradeable';
import { IERC20Upgradeable } from './IERC20Upgradeable';
import { ERC721Upgradeable } from './ERC721Upgradeable';
import { ERC721EnumerableUpgradeable } from './ERC721EnumerableUpgradeable';
import { IERC721EnumerableUpgradeable } from './IERC721EnumerableUpgradeable';
import { IERC721MetadataUpgradeable } from './IERC721MetadataUpgradeable';
import { IERC721ReceiverUpgradeable } from './IERC721ReceiverUpgradeable';
import { IERC721Upgradeable } from './IERC721Upgradeable';
import { ERC721HolderUpgradeable } from './ERC721HolderUpgradeable';
import { ERC165Upgradeable } from './ERC165Upgradeable';
import { IERC165Upgradeable } from './IERC165Upgradeable';
import { AccessControl } from './AccessControl';
import { AccessControlEnumerable } from './AccessControlEnumerable';
import { IAccessControl } from './IAccessControl';
import { IAccessControlEnumerable } from './IAccessControlEnumerable';
import { IERC2981 } from './IERC2981';
import { ERC2771Context } from './ERC2771Context';
import { Proxy } from './Proxy';
import { IERC1155 } from './IERC1155';
import { IERC1155Receiver } from './IERC1155Receiver';
import { IERC20 } from './IERC20';
import { IERC721 } from './IERC721';
import { IERC721Receiver } from './IERC721Receiver';
import { ERC165 } from './ERC165';
import { IERC165 } from './IERC165';
import { Multicall } from './Multicall';
import { AccessNFT } from './AccessNFT';
import { Bundle } from './Bundle';
import { DropERC1155 } from './DropERC1155';
import { DropERC20 } from './DropERC20';
import { DropERC721 } from './DropERC721';
import { Forwarder } from './Forwarder';
import { IDropERC1155 } from './IDropERC1155';
import { IDropERC20 } from './IDropERC20';
import { IDropERC721 } from './IDropERC721';
import { IThirdwebModule } from './IThirdwebModule';
import { IThirdwebOwnable } from './IThirdwebOwnable';
import { IThirdwebPlatformFee } from './IThirdwebPlatformFee';
import { IThirdwebPrimarySale } from './IThirdwebPrimarySale';
import { IThirdwebRestrictedTransfer } from './IThirdwebRestrictedTransfer';
import { IThirdwebRoyalty } from './IThirdwebRoyalty';
import { IWETH } from './IWETH';
import { IMarketplace } from './IMarketplace';
import { ITokenERC1155 } from './ITokenERC1155';
import { ITokenERC20 } from './ITokenERC20';
import { ITokenERC721 } from './ITokenERC721';
import { CurrencyTransferLib } from './CurrencyTransferLib';
import { Marketplace } from './Marketplace';
import { ERC1155PresetUpgradeable } from './ERC1155PresetUpgradeable';
import { PaymentSplitterUpgradeable } from './PaymentSplitterUpgradeable';
import { GovernorCountingSimpleUpgradeable } from './GovernorCountingSimpleUpgradeable';
import { GovernorSettingsUpgradeable } from './GovernorSettingsUpgradeable';
import { GovernorVotesQuorumFractionUpgradeable } from './GovernorVotesQuorumFractionUpgradeable';
import { GovernorVotesUpgradeable } from './GovernorVotesUpgradeable';
import { GovernorUpgradeable } from './GovernorUpgradeable';
import { IGovernorUpgradeable } from './IGovernorUpgradeable';
import { MulticallUpgradeable } from './MulticallUpgradeable';
import { Pack } from './Pack';
import { Splits } from './Splits';
import { TokenERC1155 } from './TokenERC1155';
import { TokenERC20 } from './TokenERC20';
import { TokenERC721 } from './TokenERC721';
import { TWFactory } from './TWFactory';
import { TWFee } from './TWFee';
import { TWProxy } from './TWProxy';
import { TWRegistry } from './TWRegistry';
import { VoteERC20 } from './VoteERC20';
import { LinkTokenInterface__factory } from './factories/LinkTokenInterface__factory';
import { VRFConsumerBase__factory } from './factories/VRFConsumerBase__factory';
import { AccessControlEnumerableUpgradeable__factory } from './factories/AccessControlEnumerableUpgradeable__factory';
import { AccessControlUpgradeable__factory } from './factories/AccessControlUpgradeable__factory';
import { IAccessControlEnumerableUpgradeable__factory } from './factories/IAccessControlEnumerableUpgradeable__factory';
import { IAccessControlUpgradeable__factory } from './factories/IAccessControlUpgradeable__factory';
import { ERC2771ContextUpgradeable__factory } from './factories/ERC2771ContextUpgradeable__factory';
import { PausableUpgradeable__factory } from './factories/PausableUpgradeable__factory';
import { ERC1155Upgradeable__factory } from './factories/ERC1155Upgradeable__factory';
import { ERC1155BurnableUpgradeable__factory } from './factories/ERC1155BurnableUpgradeable__factory';
import { ERC1155PausableUpgradeable__factory } from './factories/ERC1155PausableUpgradeable__factory';
import { IERC1155MetadataURIUpgradeable__factory } from './factories/IERC1155MetadataURIUpgradeable__factory';
import { IERC1155ReceiverUpgradeable__factory } from './factories/IERC1155ReceiverUpgradeable__factory';
import { IERC1155Upgradeable__factory } from './factories/IERC1155Upgradeable__factory';
import { ERC1155HolderUpgradeable__factory } from './factories/ERC1155HolderUpgradeable__factory';
import { ERC1155ReceiverUpgradeable__factory } from './factories/ERC1155ReceiverUpgradeable__factory';
import { ERC20Upgradeable__factory } from './factories/ERC20Upgradeable__factory';
import { ERC20PermitUpgradeable__factory } from './factories/ERC20PermitUpgradeable__factory';
import { IERC20PermitUpgradeable__factory } from './factories/IERC20PermitUpgradeable__factory';
import { ERC20BurnableUpgradeable__factory } from './factories/ERC20BurnableUpgradeable__factory';
import { ERC20PausableUpgradeable__factory } from './factories/ERC20PausableUpgradeable__factory';
import { ERC20VotesUpgradeable__factory } from './factories/ERC20VotesUpgradeable__factory';
import { IERC20MetadataUpgradeable__factory } from './factories/IERC20MetadataUpgradeable__factory';
import { IERC20Upgradeable__factory } from './factories/IERC20Upgradeable__factory';
import { ERC721Upgradeable__factory } from './factories/ERC721Upgradeable__factory';
import { ERC721EnumerableUpgradeable__factory } from './factories/ERC721EnumerableUpgradeable__factory';
import { IERC721EnumerableUpgradeable__factory } from './factories/IERC721EnumerableUpgradeable__factory';
import { IERC721MetadataUpgradeable__factory } from './factories/IERC721MetadataUpgradeable__factory';
import { IERC721ReceiverUpgradeable__factory } from './factories/IERC721ReceiverUpgradeable__factory';
import { IERC721Upgradeable__factory } from './factories/IERC721Upgradeable__factory';
import { ERC721HolderUpgradeable__factory } from './factories/ERC721HolderUpgradeable__factory';
import { ERC165Upgradeable__factory } from './factories/ERC165Upgradeable__factory';
import { IERC165Upgradeable__factory } from './factories/IERC165Upgradeable__factory';
import { AccessControl__factory } from './factories/AccessControl__factory';
import { AccessControlEnumerable__factory } from './factories/AccessControlEnumerable__factory';
import { IAccessControl__factory } from './factories/IAccessControl__factory';
import { IAccessControlEnumerable__factory } from './factories/IAccessControlEnumerable__factory';
import { IERC2981__factory } from './factories/IERC2981__factory';
import { ERC2771Context__factory } from './factories/ERC2771Context__factory';
import { Proxy__factory } from './factories/Proxy__factory';
import { IERC1155__factory } from './factories/IERC1155__factory';
import { IERC1155Receiver__factory } from './factories/IERC1155Receiver__factory';
import { IERC20__factory } from './factories/IERC20__factory';
import { IERC721__factory } from './factories/IERC721__factory';
import { IERC721Receiver__factory } from './factories/IERC721Receiver__factory';
import { ERC165__factory } from './factories/ERC165__factory';
import { IERC165__factory } from './factories/IERC165__factory';
import { Multicall__factory } from './factories/Multicall__factory';
import { AccessNFT__factory } from './factories/AccessNFT__factory';
import { Bundle__factory } from './factories/Bundle__factory';
import { DropERC1155__factory } from './factories/DropERC1155__factory';
import { DropERC20__factory } from './factories/DropERC20__factory';
import { DropERC721__factory } from './factories/DropERC721__factory';
import { Forwarder__factory } from './factories/Forwarder__factory';
import { IDropERC1155__factory } from './factories/IDropERC1155__factory';
import { IDropERC20__factory } from './factories/IDropERC20__factory';
import { IDropERC721__factory } from './factories/IDropERC721__factory';
import { IThirdwebModule__factory } from './factories/IThirdwebModule__factory';
import { IThirdwebOwnable__factory } from './factories/IThirdwebOwnable__factory';
import { IThirdwebPlatformFee__factory } from './factories/IThirdwebPlatformFee__factory';
import { IThirdwebPrimarySale__factory } from './factories/IThirdwebPrimarySale__factory';
import { IThirdwebRestrictedTransfer__factory } from './factories/IThirdwebRestrictedTransfer__factory';
import { IThirdwebRoyalty__factory } from './factories/IThirdwebRoyalty__factory';
import { IWETH__factory } from './factories/IWETH__factory';
import { IMarketplace__factory } from './factories/IMarketplace__factory';
import { ITokenERC1155__factory } from './factories/ITokenERC1155__factory';
import { ITokenERC20__factory } from './factories/ITokenERC20__factory';
import { ITokenERC721__factory } from './factories/ITokenERC721__factory';
import { CurrencyTransferLib__factory } from './factories/CurrencyTransferLib__factory';
import { Marketplace__factory } from './factories/Marketplace__factory';
import { ERC1155PresetUpgradeable__factory } from './factories/ERC1155PresetUpgradeable__factory';
import { PaymentSplitterUpgradeable__factory } from './factories/PaymentSplitterUpgradeable__factory';
import { GovernorCountingSimpleUpgradeable__factory } from './factories/GovernorCountingSimpleUpgradeable__factory';
import { GovernorSettingsUpgradeable__factory } from './factories/GovernorSettingsUpgradeable__factory';
import { GovernorVotesQuorumFractionUpgradeable__factory } from './factories/GovernorVotesQuorumFractionUpgradeable__factory';
import { GovernorVotesUpgradeable__factory } from './factories/GovernorVotesUpgradeable__factory';
import { GovernorUpgradeable__factory } from './factories/GovernorUpgradeable__factory';
import { IGovernorUpgradeable__factory } from './factories/IGovernorUpgradeable__factory';
import { MulticallUpgradeable__factory } from './factories/MulticallUpgradeable__factory';
import { Pack__factory } from './factories/Pack__factory';
import { Splits__factory } from './factories/Splits__factory';
import { TokenERC1155__factory } from './factories/TokenERC1155__factory';
import { TokenERC20__factory } from './factories/TokenERC20__factory';
import { TokenERC721__factory } from './factories/TokenERC721__factory';
import { TWFactory__factory } from './factories/TWFactory__factory';
import { TWFee__factory } from './factories/TWFee__factory';
import { TWProxy__factory } from './factories/TWProxy__factory';
import { TWRegistry__factory } from './factories/TWRegistry__factory';
import { VoteERC20__factory } from './factories/VoteERC20__factory';
import '@ethersproject/abi';
import '@ethersproject/providers';
import './common';

/* Autogenerated file. Do not edit manually. */


declare module "hardhat/types/runtime" {
  interface HardhatEthersHelpers extends HardhatEthersHelpers {
    getContractFactory(
      name: "LinkTokenInterface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<LinkTokenInterface__factory>;
    getContractFactory(
      name: "VRFConsumerBase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<VRFConsumerBase__factory>;
    getContractFactory(
      name: "AccessControlEnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlEnumerableUpgradeable__factory>;
    getContractFactory(
      name: "AccessControlUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlUpgradeable__factory>;
    getContractFactory(
      name: "IAccessControlEnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlEnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IAccessControlUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlUpgradeable__factory>;
    getContractFactory(
      name: "ERC2771ContextUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC2771ContextUpgradeable__factory>;
    getContractFactory(
      name: "PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<PausableUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155Upgradeable__factory>;
    getContractFactory(
      name: "ERC1155BurnableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155BurnableUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155PausableUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155MetadataURIUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155MetadataURIUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155Upgradeable__factory>;
    getContractFactory(
      name: "ERC1155HolderUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155HolderUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "ERC20Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20Upgradeable__factory>;
    getContractFactory(
      name: "ERC20PermitUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20PermitUpgradeable__factory>;
    getContractFactory(
      name: "IERC20PermitUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20PermitUpgradeable__factory>;
    getContractFactory(
      name: "ERC20BurnableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20BurnableUpgradeable__factory>;
    getContractFactory(
      name: "ERC20PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20PausableUpgradeable__factory>;
    getContractFactory(
      name: "ERC20VotesUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20VotesUpgradeable__factory>;
    getContractFactory(
      name: "IERC20MetadataUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20MetadataUpgradeable__factory>;
    getContractFactory(
      name: "IERC20Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20Upgradeable__factory>;
    getContractFactory(
      name: "ERC721Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721Upgradeable__factory>;
    getContractFactory(
      name: "ERC721EnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721EnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IERC721EnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721EnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IERC721MetadataUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721MetadataUpgradeable__factory>;
    getContractFactory(
      name: "IERC721ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "IERC721Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721Upgradeable__factory>;
    getContractFactory(
      name: "ERC721HolderUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721HolderUpgradeable__factory>;
    getContractFactory(
      name: "ERC165Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC165Upgradeable__factory>;
    getContractFactory(
      name: "IERC165Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC165Upgradeable__factory>;
    getContractFactory(
      name: "AccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControl__factory>;
    getContractFactory(
      name: "AccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlEnumerable__factory>;
    getContractFactory(
      name: "IAccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControl__factory>;
    getContractFactory(
      name: "IAccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlEnumerable__factory>;
    getContractFactory(
      name: "IERC2981",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC2981__factory>;
    getContractFactory(
      name: "ERC2771Context",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC2771Context__factory>;
    getContractFactory(
      name: "Proxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Proxy__factory>;
    getContractFactory(
      name: "IERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155__factory>;
    getContractFactory(
      name: "IERC1155Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155Receiver__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20__factory>;
    getContractFactory(
      name: "IERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721__factory>;
    getContractFactory(
      name: "IERC721Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721Receiver__factory>;
    getContractFactory(
      name: "ERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC165__factory>;
    getContractFactory(
      name: "IERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC165__factory>;
    getContractFactory(
      name: "Multicall",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Multicall__factory>;
    getContractFactory(
      name: "AccessNFT",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessNFT__factory>;
    getContractFactory(
      name: "Bundle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Bundle__factory>;
    getContractFactory(
      name: "DropERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC1155__factory>;
    getContractFactory(
      name: "DropERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC20__factory>;
    getContractFactory(
      name: "DropERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC721__factory>;
    getContractFactory(
      name: "Forwarder",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Forwarder__factory>;
    getContractFactory(
      name: "IDropERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC1155__factory>;
    getContractFactory(
      name: "IDropERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC20__factory>;
    getContractFactory(
      name: "IDropERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC721__factory>;
    getContractFactory(
      name: "IThirdwebModule",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebModule__factory>;
    getContractFactory(
      name: "IThirdwebOwnable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebOwnable__factory>;
    getContractFactory(
      name: "IThirdwebPlatformFee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebPlatformFee__factory>;
    getContractFactory(
      name: "IThirdwebPrimarySale",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebPrimarySale__factory>;
    getContractFactory(
      name: "IThirdwebRestrictedTransfer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebRestrictedTransfer__factory>;
    getContractFactory(
      name: "IThirdwebRoyalty",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebRoyalty__factory>;
    getContractFactory(
      name: "IWETH",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IWETH__factory>;
    getContractFactory(
      name: "IMarketplace",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IMarketplace__factory>;
    getContractFactory(
      name: "ITokenERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC1155__factory>;
    getContractFactory(
      name: "ITokenERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC20__factory>;
    getContractFactory(
      name: "ITokenERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC721__factory>;
    getContractFactory(
      name: "CurrencyTransferLib",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<CurrencyTransferLib__factory>;
    getContractFactory(
      name: "Marketplace",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Marketplace__factory>;
    getContractFactory(
      name: "ERC1155PresetUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155PresetUpgradeable__factory>;
    getContractFactory(
      name: "PaymentSplitterUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<PaymentSplitterUpgradeable__factory>;
    getContractFactory(
      name: "GovernorCountingSimpleUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorCountingSimpleUpgradeable__factory>;
    getContractFactory(
      name: "GovernorSettingsUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorSettingsUpgradeable__factory>;
    getContractFactory(
      name: "GovernorVotesQuorumFractionUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorVotesQuorumFractionUpgradeable__factory>;
    getContractFactory(
      name: "GovernorVotesUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorVotesUpgradeable__factory>;
    getContractFactory(
      name: "GovernorUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorUpgradeable__factory>;
    getContractFactory(
      name: "IGovernorUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IGovernorUpgradeable__factory>;
    getContractFactory(
      name: "MulticallUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<MulticallUpgradeable__factory>;
    getContractFactory(
      name: "Pack",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Pack__factory>;
    getContractFactory(
      name: "Splits",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Splits__factory>;
    getContractFactory(
      name: "TokenERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC1155__factory>;
    getContractFactory(
      name: "TokenERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC20__factory>;
    getContractFactory(
      name: "TokenERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC721__factory>;
    getContractFactory(
      name: "TWFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWFactory__factory>;
    getContractFactory(
      name: "TWFee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWFee__factory>;
    getContractFactory(
      name: "TWProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWProxy__factory>;
    getContractFactory(
      name: "TWRegistry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWRegistry__factory>;
    getContractFactory(
      name: "VoteERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<VoteERC20__factory>;

    getContractAt(
      name: "LinkTokenInterface",
      address: string,
      signer?: ethers.Signer
    ): Promise<LinkTokenInterface>;
    getContractAt(
      name: "VRFConsumerBase",
      address: string,
      signer?: ethers.Signer
    ): Promise<VRFConsumerBase>;
    getContractAt(
      name: "AccessControlEnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlEnumerableUpgradeable>;
    getContractAt(
      name: "AccessControlUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlUpgradeable>;
    getContractAt(
      name: "IAccessControlEnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlEnumerableUpgradeable>;
    getContractAt(
      name: "IAccessControlUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlUpgradeable>;
    getContractAt(
      name: "ERC2771ContextUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC2771ContextUpgradeable>;
    getContractAt(
      name: "PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<PausableUpgradeable>;
    getContractAt(
      name: "ERC1155Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155Upgradeable>;
    getContractAt(
      name: "ERC1155BurnableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155BurnableUpgradeable>;
    getContractAt(
      name: "ERC1155PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155PausableUpgradeable>;
    getContractAt(
      name: "IERC1155MetadataURIUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155MetadataURIUpgradeable>;
    getContractAt(
      name: "IERC1155ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155ReceiverUpgradeable>;
    getContractAt(
      name: "IERC1155Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155Upgradeable>;
    getContractAt(
      name: "ERC1155HolderUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155HolderUpgradeable>;
    getContractAt(
      name: "ERC1155ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155ReceiverUpgradeable>;
    getContractAt(
      name: "ERC20Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20Upgradeable>;
    getContractAt(
      name: "ERC20PermitUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20PermitUpgradeable>;
    getContractAt(
      name: "IERC20PermitUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20PermitUpgradeable>;
    getContractAt(
      name: "ERC20BurnableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20BurnableUpgradeable>;
    getContractAt(
      name: "ERC20PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20PausableUpgradeable>;
    getContractAt(
      name: "ERC20VotesUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20VotesUpgradeable>;
    getContractAt(
      name: "IERC20MetadataUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20MetadataUpgradeable>;
    getContractAt(
      name: "IERC20Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20Upgradeable>;
    getContractAt(
      name: "ERC721Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721Upgradeable>;
    getContractAt(
      name: "ERC721EnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721EnumerableUpgradeable>;
    getContractAt(
      name: "IERC721EnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721EnumerableUpgradeable>;
    getContractAt(
      name: "IERC721MetadataUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721MetadataUpgradeable>;
    getContractAt(
      name: "IERC721ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721ReceiverUpgradeable>;
    getContractAt(
      name: "IERC721Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721Upgradeable>;
    getContractAt(
      name: "ERC721HolderUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721HolderUpgradeable>;
    getContractAt(
      name: "ERC165Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC165Upgradeable>;
    getContractAt(
      name: "IERC165Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC165Upgradeable>;
    getContractAt(
      name: "AccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControl>;
    getContractAt(
      name: "AccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlEnumerable>;
    getContractAt(
      name: "IAccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControl>;
    getContractAt(
      name: "IAccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlEnumerable>;
    getContractAt(
      name: "IERC2981",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC2981>;
    getContractAt(
      name: "ERC2771Context",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC2771Context>;
    getContractAt(
      name: "Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Proxy>;
    getContractAt(
      name: "IERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155>;
    getContractAt(
      name: "IERC1155Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155Receiver>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20>;
    getContractAt(
      name: "IERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721>;
    getContractAt(
      name: "IERC721Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721Receiver>;
    getContractAt(
      name: "ERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC165>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC165>;
    getContractAt(
      name: "Multicall",
      address: string,
      signer?: ethers.Signer
    ): Promise<Multicall>;
    getContractAt(
      name: "AccessNFT",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessNFT>;
    getContractAt(
      name: "Bundle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Bundle>;
    getContractAt(
      name: "DropERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC1155>;
    getContractAt(
      name: "DropERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC20>;
    getContractAt(
      name: "DropERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC721>;
    getContractAt(
      name: "Forwarder",
      address: string,
      signer?: ethers.Signer
    ): Promise<Forwarder>;
    getContractAt(
      name: "IDropERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC1155>;
    getContractAt(
      name: "IDropERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC20>;
    getContractAt(
      name: "IDropERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC721>;
    getContractAt(
      name: "IThirdwebModule",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebModule>;
    getContractAt(
      name: "IThirdwebOwnable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebOwnable>;
    getContractAt(
      name: "IThirdwebPlatformFee",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebPlatformFee>;
    getContractAt(
      name: "IThirdwebPrimarySale",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebPrimarySale>;
    getContractAt(
      name: "IThirdwebRestrictedTransfer",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebRestrictedTransfer>;
    getContractAt(
      name: "IThirdwebRoyalty",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebRoyalty>;
    getContractAt(
      name: "IWETH",
      address: string,
      signer?: ethers.Signer
    ): Promise<IWETH>;
    getContractAt(
      name: "IMarketplace",
      address: string,
      signer?: ethers.Signer
    ): Promise<IMarketplace>;
    getContractAt(
      name: "ITokenERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC1155>;
    getContractAt(
      name: "ITokenERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC20>;
    getContractAt(
      name: "ITokenERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC721>;
    getContractAt(
      name: "CurrencyTransferLib",
      address: string,
      signer?: ethers.Signer
    ): Promise<CurrencyTransferLib>;
    getContractAt(
      name: "Marketplace",
      address: string,
      signer?: ethers.Signer
    ): Promise<Marketplace>;
    getContractAt(
      name: "ERC1155PresetUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155PresetUpgradeable>;
    getContractAt(
      name: "PaymentSplitterUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<PaymentSplitterUpgradeable>;
    getContractAt(
      name: "GovernorCountingSimpleUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorCountingSimpleUpgradeable>;
    getContractAt(
      name: "GovernorSettingsUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorSettingsUpgradeable>;
    getContractAt(
      name: "GovernorVotesQuorumFractionUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorVotesQuorumFractionUpgradeable>;
    getContractAt(
      name: "GovernorVotesUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorVotesUpgradeable>;
    getContractAt(
      name: "GovernorUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorUpgradeable>;
    getContractAt(
      name: "IGovernorUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IGovernorUpgradeable>;
    getContractAt(
      name: "MulticallUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<MulticallUpgradeable>;
    getContractAt(
      name: "Pack",
      address: string,
      signer?: ethers.Signer
    ): Promise<Pack>;
    getContractAt(
      name: "Splits",
      address: string,
      signer?: ethers.Signer
    ): Promise<Splits>;
    getContractAt(
      name: "TokenERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC1155>;
    getContractAt(
      name: "TokenERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC20>;
    getContractAt(
      name: "TokenERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC721>;
    getContractAt(
      name: "TWFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWFactory>;
    getContractAt(
      name: "TWFee",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWFee>;
    getContractAt(
      name: "TWProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWProxy>;
    getContractAt(
      name: "TWRegistry",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWRegistry>;
    getContractAt(
      name: "VoteERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<VoteERC20>;

    // default types
    getContractFactory(
      name: string,
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ethers.ContractFactory>;
    getContractFactory(
      abi: any[],
      bytecode: ethers.utils.BytesLike,
      signer?: ethers.Signer
    ): Promise<ethers.ContractFactory>;
    getContractAt(
      nameOrAbi: string | any[],
      address: string,
      signer?: ethers.Signer
    ): Promise<ethers.Contract>;
  }
}
