import { Contract, Signer, Provider } from "ethers"; import { SupportedNetworks } from "../contracts"; import { ModuleProxyFactory__factory } from "../types"; import { KnownContracts } from "./types"; type ABI = any[] | readonly any[]; type TxAndExpectedAddress = { transaction: { data: string; to: string; value: bigint; }; expectedModuleAddress: string; }; /** * Get the transaction for deploying a module proxy through the Module Proxy Factory. * This will also initialize the module proxy by calling the setup function. * * @param moduleName Name of the module to deploy (must be present in `KnownContracts`) * @param setupArgs The arguments for the setup function of the module * @param provider * @param chainId * @param saltNonce * @returns the transaction and the expected address of the module proxy */ export declare const deployAndSetUpModule: (moduleName: KnownContracts, setupArgs: { types: Array; values: Array; }, provider: Provider, chainId: number, saltNonce: string) => Promise<{ transaction: { data: string; to: string; value: bigint; }; expectedModuleAddress: string; }>; /** * Get the transaction for deploying a module proxy through the Module Proxy Factory. * This will also initialize the module proxy by calling the setup function. * * This method is for modules that do not have a mastercopy listed in the `KnownContracts` * @param mastercopyAddress address of the mastercopy to use * @param abi abi of the module * @param setupArgs The arguments for the setup function of the module * @param provider * @param chainId * @param saltNonce * @returns the transaction and the expected address of the module proxy */ export declare const deployAndSetUpCustomModule: (mastercopyAddress: string, abi: ABI, setupArgs: { types: Array; values: Array; }, provider: Provider, chainId: number, saltNonce: string) => Promise; export declare const calculateProxyAddress: (moduleFactory: Contract, mastercopyAddress: string, initData: string, saltNonce: string) => Promise; export declare const getModuleInstance: (moduleName: T, moduleAddress: string, provider: Provider | Signer) => ReturnType<{ bridge: typeof import("../types").Bridge__factory; circulatingSupplyERC20: typeof import("../types").CirculatingSupplyErc20__factory; circulatingSupplyERC721: typeof import("../types").CirculatingSupplyErc721__factory; delay: typeof import("../types").Delay__factory; erc20Votes: typeof import("../types").Erc20Votes__factory; erc721Votes: typeof import("../types").Erc721Votes__factory; exit: typeof import("../types").ExitErc20__factory; exitERC721: typeof import("../types").ExitErc721__factory; factory: typeof ModuleProxyFactory__factory; metaGuard: typeof import("../types").MetaGuard__factory; optimisticGovernor: typeof import("../types").OptimisticGovernor__factory; ozGovernor: typeof import("../types").OzGovernor__factory; realityERC20: typeof import("../types").RealityErc20__factory; realityETH: typeof import("../types").RealityEth__factory; roles: typeof import("../types").RolesV1__factory; roles_v1: typeof import("../types").RolesV1__factory; roles_v2: typeof import("../types").RolesV2__factory; scopeGuard: typeof import("../types").ScopeGuard__factory; tellor: typeof import("../types").Tellor__factory; multisendEncoder: typeof import("../types").MultisendEncoder__factory; permissions: typeof import("../types").Permissions__factory; connext: typeof import("../types").Connext__factory; }[T]["connect"]>; export declare const getModuleFactoryAndMasterCopy: (moduleName: T, provider: Provider, chainId: SupportedNetworks) => { moduleFactory: import("./types").ModuleProxyFactory; moduleMastercopy: ReturnType<{ bridge: typeof import("../types").Bridge__factory; circulatingSupplyERC20: typeof import("../types").CirculatingSupplyErc20__factory; circulatingSupplyERC721: typeof import("../types").CirculatingSupplyErc721__factory; delay: typeof import("../types").Delay__factory; erc20Votes: typeof import("../types").Erc20Votes__factory; erc721Votes: typeof import("../types").Erc721Votes__factory; exit: typeof import("../types").ExitErc20__factory; exitERC721: typeof import("../types").ExitErc721__factory; factory: typeof ModuleProxyFactory__factory; metaGuard: typeof import("../types").MetaGuard__factory; optimisticGovernor: typeof import("../types").OptimisticGovernor__factory; ozGovernor: typeof import("../types").OzGovernor__factory; realityERC20: typeof import("../types").RealityErc20__factory; realityETH: typeof import("../types").RealityEth__factory; roles: typeof import("../types").RolesV1__factory; roles_v1: typeof import("../types").RolesV1__factory; roles_v2: typeof import("../types").RolesV2__factory; scopeGuard: typeof import("../types").ScopeGuard__factory; tellor: typeof import("../types").Tellor__factory; multisendEncoder: typeof import("../types").MultisendEncoder__factory; permissions: typeof import("../types").Permissions__factory; connext: typeof import("../types").Connext__factory; }[T]["connect"]>; }; export {};