import { Create2Args, EIP1193Provider } from "../types"; /** * Deploys a Mastercopy via a SingletonFactory * * @param {Object} params - The function parameters. * @param {string} [params.factory=erc2470FactoryAddress] - The address of the factory to use. * @param {string} params.bytecode - The bytecode of the contract to deploy. * @param {Object} params.constructorArgs - The constructor arguments for the contract. * @param {any[]} params.constructorArgs.types - The types of the constructor arguments. * @param {any[]} params.constructorArgs.values - The values of the constructor arguments. * @param {string | number | bigint} params.salt - The salt value used for CREATE2 deployment. * @param {EIP1193Provider} params.provider - The EIP1193 compliant provider to interact with the blockchain. * @param {function} [params.onStart] - Optional callback function to call when the deployment starts. * * @returns {Promise<{ address: string; noop: boolean }>} The address of the deployed mastercopy contract and a noop flag indicating if the deployment was a no-operation. */ export default function deployMastercopy({ factory, bytecode, constructorArgs, salt, provider, onStart, }: Create2Args & { factory?: string; provider: EIP1193Provider; onStart?: () => void; }): Promise<{ address: string; noop: boolean; }>;