import { FactoryType } from "locklift/internal/factory";
import { Address, Contract, Locklift } from "locklift";
import { AccountWithSigner, CreateAccountParamsWithoutPk, DeployContractParams, SaveAccount, TagFile } from "./types";
export declare class Deployments<T extends FactoryType = FactoryType> {
    private readonly locklift;
    private readonly tags;
    private readonly network;
    private readonly networkId;
    deploymentsStore: Record<string, Contract<any>>;
    accountsStore: Record<string, AccountWithSigner>;
    private readonly pathToNetworkFolder;
    private readonly logger;
    constructor(locklift: Locklift<T>, tags: Array<TagFile>, network: string, networkId: number);
    private getLogContent;
    private getAccountOrContractFilePath;
    private writeDeployInfo;
    deploy: ({ deployConfig, deploymentName, enableLogs, }: {
        deployConfig: DeployContractParams<T>;
        deploymentName: string;
        enableLogs?: boolean | undefined;
    }) => Promise<{
        contract: Contract<T[keyof T]>;
    } & {
        tx: import("locklift/types").TransactionWithOutput;
    }>;
    saveContract: ({ deploymentName, address, contractName, }: {
        deploymentName: string;
        address: string | Address;
        contractName: keyof T;
    }, enableLogs?: boolean) => Promise<void>;
    private setContractToStore;
    getContract: <T_1>(contractName: string) => Contract<T_1>;
    deployAccounts: (accounts: Array<{
        deploymentName: string;
        accountSettings: CreateAccountParamsWithoutPk<T>;
    } & {
        signerId: string;
    }>, enableLogs?: boolean) => Promise<Array<AccountWithSigner>>;
    getAccount: (accountName: string) => AccountWithSigner;
    saveAccount: <T_1 extends {
        type: import("locklift").WalletTypes.WalletV3 | import("locklift").WalletTypes.HighLoadWalletV2;
        publicKey: string;
    } | {
        type: import("locklift").WalletTypes.EverWallet;
        address: Address;
    } | {
        type: import("locklift").WalletTypes.MsigAccount;
        publicKey?: string | undefined;
        address: Address;
        mSigType: "SafeMultisig" | "multisig2";
    }>({ deploymentName, signerId, address, accountSettings, }: {
        accountSettings: SaveAccount<T_1>;
        signerId: string;
        deploymentName: string;
        address: string;
    }, enableLogs?: boolean) => Promise<void>;
    private setAccountToStore;
    reset: () => void;
    load: () => Promise<void>;
    fixture: (fixtureConfig?: {
        include?: Array<string>;
        exclude?: Array<string>;
    }) => Promise<void>;
}
