import { Account, Transaction } from "@zilliqa-js/account";
import { Contract, Init } from "@zilliqa-js/contract";
import { BN, Long } from "@zilliqa-js/util";
import { Zilliqa } from "@zilliqa-js/zilliqa";
import { HardhatRuntimeEnvironment } from "hardhat/types";
export interface Value {
    vname: string;
    type: string;
    value: string;
}
export interface Setup {
    zilliqa: Zilliqa;
    readonly attempts: number;
    readonly timeout: number;
    readonly version: number;
    readonly gasPrice: BN;
    readonly gasLimit: Long;
    accounts: Account[];
}
export declare let setup: Setup | null;
export declare const initZilliqa: (zilliqaNetworkUrl: string, chainId: number, privateKeys: string[], attempts?: number, timeoutMs?: number, gasPriceQa?: number, gasLimit?: number) => Setup;
export declare function updateSetup(args: any): void;
export declare function setAccount(account: number | Account): void;
export type ContractFunction<T = any> = (...args: any[]) => Promise<T>;
declare module "@zilliqa-js/contract" {
    interface Contract {
        executer?: Account;
        [key: string]: ContractFunction | any;
        connect: (signer: Account) => Contract;
    }
}
export type ScillaContract = Contract;
export interface UserDefinedLibrary {
    name: string;
    address: string;
}
export type OptionalUserDefinedLibraryList = UserDefinedLibrary[] | null;
export declare function deploy(hre: HardhatRuntimeEnvironment, contractName: string, compress: boolean, userDefinedLibraries: OptionalUserDefinedLibraryList, ...args: any[]): Promise<ScillaContract>;
export declare const deployLibrary: (hre: HardhatRuntimeEnvironment, libraryName: string, compress: boolean) => Promise<ScillaContract>;
export declare function deployFromFile(path: string, init: Init, compress: boolean, txParamsForContractDeployment: any): Promise<[Transaction, ScillaContract]>;
export declare function compressContract(code: string): string;
//# sourceMappingURL=ScillaContractDeployer.d.ts.map