import { type Address, type Chain, type HttpTransport } from "viem"; import { type SmartAccountProviderOpts, type UserOperationCallData, type BatchUserOperationCallData, type SendUserOperationResult, SmartAccountProvider, type AccountMiddlewareFn } from "@alchemy/aa-core"; import { KernelSmartContractAccount } from "./account.js"; import type { PaymasterConfig, PaymasterPolicy } from "./paymaster/types.js"; export type ZeroDevProviderConfig = { projectId: string; chain: Chain | number; entryPointAddress?: Address; rpcUrl?: string; account?: KernelSmartContractAccount; opts?: SmartAccountProviderOpts; }; export declare enum Operation { Call = 0, DelegateCall = 1 } type UserOpDataOperationTypes = T extends UserOperationCallData ? Operation.Call | Operation.DelegateCall : T extends BatchUserOperationCallData ? Operation.Call : never; export declare class ZeroDevProvider extends SmartAccountProvider { protected projectId: string; constructor({ projectId, chain, entryPointAddress, rpcUrl, account, opts, }: ZeroDevProviderConfig); getProjectId: () => string; sendUserOperation: (data: T, operation?: UserOpDataOperationTypes) => Promise; getAccount: () => KernelSmartContractAccount; dummyPaymasterDataMiddleware: AccountMiddlewareFn; withZeroDevPaymasterAndData(config: PaymasterConfig): this & SmartAccountProvider & { account: import("@alchemy/aa-core").BaseSmartContractAccount; }; request: (args: { method: string; params?: any[]; }) => Promise; } export {};