import type { DeployOptions } from '@rocketh/deploy'; import type { EIP1193Account } from 'eip-1193'; import type { Artifact, Deployment, DeploymentConstruction, Libraries, Abi, LinkedDataProvided } from '@rocketh/core/types'; import type { ContractFunctionArgs, ContractFunctionName, WriteContractParameters } from 'viem'; export type { Artifact, Deployment, DeploymentConstruction, Libraries, Abi, LinkedDataProvided }; export type { ContractFunctionArgs, ContractFunctionName, WriteContractParameters }; type DeployMutuallyExclusiveOptions = { alwaysOverride?: boolean; } | { strictBytecodeMatch?: boolean; }; export type Facet = { facetAddress: `0x${string}`; functionSelectors: readonly `0x${string}`[]; }; export declare enum FacetCutAction { Add = 0, Replace = 1, Remove = 2 } export type FacetCut = Facet & { action: FacetCutAction; }; export type FacetOptions = { name?: string; artifact: Artifact; args?: any[]; linkedData?: LinkedDataProvided; libraries?: Libraries; deterministic?: boolean | `0x${string}`; }; export type DiamondFacets = Array; export type ExecutionArgs, TArgs extends ContractFunctionArgs = ContractFunctionArgs> = Pick, 'args' | 'functionName'>; export type ExecuteOptions, TArgs extends ContractFunctionArgs = ContractFunctionArgs> = ExecutionArgs & { type: 'artifact'; artifact: Artifact; }; export type DiamondDeployOptions = ContractFunctionName, TArgs extends ContractFunctionArgs = ContractFunctionArgs> = Omit & DeployMutuallyExclusiveOptions & { facets: DiamondFacets; owner?: EIP1193Account; execute?: ExecuteOptions | { type: 'facet'; functionName: string; args: any[]; }; defaultCutFacet?: boolean; defaultOwnershipFacet?: boolean; diamondContractArgs?: any[]; excludeSelectors?: { [facetName: string]: `0x${string}`[]; }; facetsArgs?: any[]; deterministicSalt?: `0x${string}`; }; export type DiamondDeploymentConstruction = Omit, 'artifact' | 'args'> & { artifact?: Artifact; }; export type DeployViaDiamondFunction = (name: string, params: DiamondDeploymentConstruction, options: DiamondDeployOptions) => Promise & { newlyDeployed: boolean; }>; //# sourceMappingURL=types.d.ts.map