import { TransactionReceipt } from "@ethersproject/providers";
import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
import { Address } from "@opengsn/provider";
import { ContractDeployTransaction } from "ethers";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { ContractJson } from "./types";
export declare class Deployer {
    env: HardhatRuntimeEnvironment;
    deployer: HardhatEthersSigner;
    artifacts: {
        [name: string]: ContractJson;
    };
    factoryAddress: Address | undefined;
    paymasterAddress: Address | undefined;
    constructor(hre: HardhatRuntimeEnvironment, deployer: HardhatEthersSigner);
    deployAndInitFactoryAndPaymaster(hre: HardhatRuntimeEnvironment): Promise<void>;
    deployTargetContract(hre: HardhatRuntimeEnvironment, salt: string, bytecode: ContractDeployTransaction): Promise<{
        receipt: TransactionReceipt;
        contractAddress: string;
    }>;
    isDeployerInitialized(network: string): Promise<boolean>;
    saveDeployment(data: any): Promise<void>;
    getDeployerContracts(network: string): Promise<any>;
    deploy<T>(contract: ContractJson, deployParams: any[], actor: HardhatEthersSigner): Promise<import("ethers").BaseContract & {
        deploymentTransaction(): import("ethers").ContractTransactionResponse;
    } & Omit<import("ethers").BaseContract, keyof import("ethers").BaseContract>>;
}
//# sourceMappingURL=deployer.d.ts.map