import { HardhatRuntimeEnvironment } from 'hardhat/types';
import * as zk from 'zksync-ethers';
import * as ethers from 'ethers';
import { ZkSyncArtifact } from './types';
import { AbstractDeployer } from './abstract-deployer';
/**
 * An entity capable of deploying contracts to the ZKsync network.
 */
export declare class Deployer implements AbstractDeployer {
    private _hre;
    ethWallet: ethers.Wallet;
    zkWallet: zk.Wallet;
    constructor(_hre: HardhatRuntimeEnvironment, zkWallet: zk.Wallet);
    static fromEthWallet(hre: HardhatRuntimeEnvironment, ethWallet: ethers.Wallet): Deployer;
    estimateDeployFee(artifact: ZkSyncArtifact, constructorArguments: any[]): Promise<bigint>;
    estimateDeployGas(artifact: ZkSyncArtifact, constructorArguments: any[], deploymentType?: zk.types.DeploymentType): Promise<bigint>;
    loadArtifact(contractNameOrFullyQualifiedName: string): Promise<ZkSyncArtifact>;
    deploy(contractNameOrArtifact: ZkSyncArtifact | string, constructorArguments?: any[], deploymentType?: zk.types.DeploymentType, overrides?: ethers.Overrides, additionalFactoryDeps?: ethers.BytesLike[]): Promise<zk.Contract>;
}
//# sourceMappingURL=deployer.d.ts.map