import { Contract } from "everscale-inpage-provider";
import { Locklift } from "locklift";
import { DeployContractParams, FactoryType } from "locklift/internal/factory";
import { DeployTransaction, TransactionWithOutput } from "locklift/types";
import { ContractVersion } from "./artifacts";
export declare class DeploymentHandler<T extends FactoryType> {
    private readonly artifacts;
    private readonly locklift;
    constructor(locklift: Locklift<T>);
    getArtifacts<IDeployArtifacts>(): IDeployArtifacts;
    getContract<ABI>(ver: ContractVersion<ABI>): Contract<ABI>;
    deployContract<ContractName extends keyof T>(alias: string, version: string, args: DeployContractParams<T, ContractName>, deployFn?: <ContractName extends keyof T>(args: DeployContractParams<T, ContractName>) => Promise<{
        contract: Contract<T[ContractName]>;
    } & {
        tx: TransactionWithOutput;
    }>): Promise<{
        contract: Contract<T[ContractName]>;
    } & DeployTransaction>;
    reset(): void;
}
