import type { Layer } from "effect"; import { Effect, SubscriptionRef } from "effect"; import type { Abi, Address, ContractConstructorArgs, Hex } from "viem"; import type { DeployResult } from "../deploy/index.js"; import { DeployService } from "../deploy/index.js"; import type { TxState } from "../tx/index.js"; type DeployArgsField = readonly [] extends ContractConstructorArgs ? { args?: ContractConstructorArgs | undefined; } : { args: ContractConstructorArgs; }; export type MockDeployServiceConfig = { deploy?: (params: { chainId: number; abi: TAbi; bytecode: Hex; value?: bigint; account?: Address; gas?: bigint; } & DeployArgsField) => Effect.Effect; deployAndTrack?: (params: { chainId: number; abi: TAbi; bytecode: Hex; value?: bigint; account?: Address; } & DeployArgsField) => Effect.Effect<{ stateRef: SubscriptionRef.SubscriptionRef; result: Effect.Effect; }>; computeAddress?: (params: { from: Address; nonce: bigint; }) => Effect.Effect
; verifyDeployment?: (params: { chainId: number; address: Address; }) => Effect.Effect; verifyDeploymentStrict?: (params: { chainId: number; address: Address; expectedBytecode: Hex; }) => Effect.Effect; }; export declare const makeMockDeployServiceLayer: (config?: MockDeployServiceConfig, supportedChainId?: number) => Layer.Layer; export {}; //# sourceMappingURL=mock-deploy-service.d.ts.map