import { Account, Transaction } from "@zilliqa-js/account";
import { Init } from "@zilliqa-js/contract";
import "hardhat/types/config";
import "hardhat/types/runtime";
import { ContractDeployer } from "./deployer/Deployer";
import { ScillaContract, UserDefinedLibrary } from "./deployer/ScillaContractDeployer";
import { ScillaContracts } from "./parser/ScillaContractsInfoUpdater";
import { ZilliqaHardhatObject } from "./ZilliqaHardhatObject";
declare module "hardhat/types/runtime" {
    interface HardhatRuntimeEnvironment {
        zilliqa: ZilliqaHardhatObject;
        scillaContracts: ScillaContracts;
        contractDeployer: ContractDeployer;
        interactWithScillaContract: (contractAddress: string) => Promise<ScillaContract | undefined>;
        deployScillaContract: (contractName: string, ...args: any[]) => Promise<ScillaContract>;
        deployScillaContractWithLib: (contractName: string, userDefinedLibraries: UserDefinedLibrary[], ...args: any[]) => Promise<ScillaContract>;
        deployScillaLibrary: (contractName: string, compress: boolean) => Promise<ScillaContract>;
        deployScillaFile: (contractName: string, init: Init, compress: boolean) => Promise<[Transaction, ScillaContract]>;
        getZilliqaChainId: () => number;
        getNetworkUrl: () => string;
        getPrivateKeys: () => string[];
        setActiveAccount: (indexOrAccount: number | Account) => void;
        setScillaDefaults: (params: any) => void;
    }
}
//# sourceMappingURL=type-extensions.d.ts.map