import { type UserOperationCallData, type BatchUserOperationCallData, type UserOperationRequest_v7 } from "@aa-sdk/core"; import { type Address, type Hex } from "viem"; import type { ModularAccountV2Client } from "../client/client.js"; export type DeferredActionTypedData = { domain: { chainId: number; verifyingContract: Address; }; types: { DeferredAction: [ { name: "nonce"; type: "uint256"; }, { name: "deadline"; type: "uint48"; }, { name: "call"; type: "bytes"; } ]; }; primaryType: "DeferredAction"; message: { nonce: bigint; deadline: number; call: Hex; }; }; export type DeferredActionReturnData = { typedData: DeferredActionTypedData; }; export type CreateDeferredActionTypedDataParams = { callData: Hex; deadline: number; nonce: bigint; }; export type BuildPreSignatureDeferredActionDigestParams = { typedData: DeferredActionTypedData; }; export type BuildUserOperationWithDeferredActionParams = { uo: UserOperationCallData | BatchUserOperationCallData; signaturePrepend: Hex; nonceOverride: bigint; }; export type EntityIdAndNonceParams = { entityId?: number; nonceKey?: bigint; isGlobalValidation: boolean; isDeferredAction?: boolean; }; export type DeferralActions = { createDeferredActionTypedDataObject: (args: CreateDeferredActionTypedDataParams) => Promise; buildPreSignatureDeferredActionDigest: (args: BuildPreSignatureDeferredActionDigestParams) => Hex; buildUserOperationWithDeferredAction: (args: BuildUserOperationWithDeferredActionParams) => Promise; getEntityIdAndNonce: (args: EntityIdAndNonceParams) => Promise<{ nonce: bigint; entityId: number; }>; }; /** * Provides deferred action functionalities for a MA v2 client, ensuring compatibility with `SmartAccountClient`. * * @param {ModularAccountV2Client} client - The client instance which provides account and sendUserOperation functionality. * @returns {object} - An object containing three methods: `createDeferredActionTypedDataObject`, `buildDeferredActionDigest`, and `buildUserOperationWithDeferredAction`. */ export declare const deferralActions: (client: ModularAccountV2Client) => DeferralActions;