import { BigNumberish } from 'ethers';
import { TransactionRequest } from '@ethersproject/abstract-provider';
import { JsonRpcProvider } from '@ethersproject/providers';
export declare class DeterministicDeployer {
    readonly provider: JsonRpcProvider;
    static getAddress(ctrCode: string, salt?: BigNumberish): Promise<string>;
    static deploy(ctrCode: string, salt?: BigNumberish): Promise<string>;
    proxyAddress: string;
    deploymentTransaction: string;
    deploymentSignerAddress: string;
    deploymentGasPrice: number;
    deploymentGasLimit: number;
    constructor(provider: JsonRpcProvider);
    isContractDeployed(address: string): Promise<boolean>;
    isDeployerDeployed(): Promise<boolean>;
    deployDeployer(): Promise<void>;
    getDeployTransaction(ctrCode: string, salt?: BigNumberish): Promise<TransactionRequest>;
    getDeterministicDeployAddress(ctrCode: string, salt?: BigNumberish): Promise<string>;
    deterministicDeploy(ctrCode: string, salt?: BigNumberish): Promise<string>;
    private static _instance?;
    static init(provider: JsonRpcProvider): void;
    static get instance(): DeterministicDeployer;
}
