import { type SmartAccountSigner, type SmartContractAccount, type SmartContractAccountWithSigner, type ToSmartContractAccountParams } from "@aa-sdk/core"; import { type Address, type Chain, type Hex, type Transport } from "viem"; import type { ToWebAuthnAccountParameters } from "viem/account-abstraction"; export declare const executeUserOpSelector: Hex; export type ModularAccountsV2 = ModularAccountV2 | WebauthnModularAccountV2; export type SignerEntity = { isGlobalValidation: boolean; entityId: number; }; export type ExecutionDataView = { module: Address; skipRuntimeValidation: boolean; allowGlobalValidation: boolean; executionHooks: readonly Hex[]; }; export type ValidationDataView = { validationHooks: readonly Hex[]; executionHooks: readonly Hex[]; selectors: readonly Hex[]; validationFlags: number; }; export type ValidationDataParams = { validationModuleAddress: Address; entityId?: never; } | { validationModuleAddress?: never; entityId: number; }; export type ModularAccountV2 = SmartContractAccountWithSigner<"ModularAccountV2", TSigner, "0.7.0"> & { signerEntity: SignerEntity; getExecutionData: (selector: Hex) => Promise; getValidationData: (args: ValidationDataParams) => Promise; encodeCallData: (callData: Hex) => Promise; }; export type WebauthnModularAccountV2 = SmartContractAccount<"ModularAccountV2", "0.7.0"> & { params: ToWebAuthnAccountParameters; signerEntity: SignerEntity; getExecutionData: (selector: Hex) => Promise; getValidationData: (args: ValidationDataParams) => Promise; encodeCallData: (callData: Hex) => Promise; }; export type CreateMAV2BaseParams = Omit, "encodeExecute" | "encodeBatchExecute" | "getNonce" | "signMessage" | "signTypedData" | "getDummySignature" | "prepareSign" | "formatSign"> & { signer: TSigner; signerEntity?: SignerEntity; accountAddress: Address; deferredAction?: Hex; }; export type CreateWebauthnMAV2BaseParams = Omit & { credential: ToWebAuthnAccountParameters["credential"]; getFn?: ToWebAuthnAccountParameters["getFn"] | undefined; rpId?: ToWebAuthnAccountParameters["rpId"] | undefined; }; export type CreateMAV2BaseReturnType = Promise>; export declare function createMAv2Base(config: CreateWebauthnMAV2BaseParams): Promise; export declare function createMAv2Base(config: CreateMAV2BaseParams): CreateMAV2BaseReturnType; export declare function isModularAccountV2(account: SmartContractAccount): account is ModularAccountV2 | WebauthnModularAccountV2;