import { ContractFactory, Overrides, Signer } from 'ethers';
import { TransactionRequest, Provider } from '@ethersproject/providers';
import { ERC721HolderUpgradeable, ERC721HolderUpgradeableInterface } from '../ERC721HolderUpgradeable.js';
import '@ethersproject/abi';
import '../common.js';

declare type ERC721HolderUpgradeableConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
declare class ERC721HolderUpgradeable__factory extends ContractFactory {
    constructor(...args: ERC721HolderUpgradeableConstructorParams);
    deploy(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ERC721HolderUpgradeable>;
    getDeployTransaction(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): TransactionRequest;
    attach(address: string): ERC721HolderUpgradeable;
    connect(signer: Signer): ERC721HolderUpgradeable__factory;
    static readonly contractName: "ERC721HolderUpgradeable";
    readonly contractName: "ERC721HolderUpgradeable";
    static readonly bytecode = "0x608060405234801561001057600080fd5b506101ab806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e3660046100c2565b630a85bd0160e11b949350505050565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b803573ffffffffffffffffffffffffffffffffffffffff811681146100a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156100d857600080fd5b6100e185610083565b93506100ef60208601610083565b925060408501359150606085013567ffffffffffffffff8082111561011357600080fd5b818701915087601f83011261012757600080fd5b813581811115610139576101396100ac565b604051601f8201601f19908116603f01168101908382118183101715610161576101616100ac565b816040528281528a602084870101111561017a57600080fd5b8260208601602083013760006020848301015280955050505050509295919450925056fea164736f6c634300080c000a";
    static readonly abi: {
        inputs: {
            internalType: string;
            name: string;
            type: string;
        }[];
        name: string;
        outputs: {
            internalType: string;
            name: string;
            type: string;
        }[];
        stateMutability: string;
        type: string;
    }[];
    static createInterface(): ERC721HolderUpgradeableInterface;
    static connect(address: string, signerOrProvider: Signer | Provider): ERC721HolderUpgradeable;
}

export { ERC721HolderUpgradeable__factory };
