import type { GetAccountParameter, GetEntryPointFromAccount, SmartContractAccount, UserOperationRequest, } from "@aa-sdk/core"; import type { Hex } from "viem"; import type { GetPluginAddressParameter } from "../types"; export type SignerType = "EOA" | "CONTRACT"; export type UserOpSignatureType = "ACTUAL" | "UPPERLIMIT"; export type Signature = { signerType: SignerType; userOpSigType: UserOpSignatureType; signer: `0x${string}`; signature: `0x${string}`; }; export type SignMultisigUserOperationResult = { signature: Hex; aggregatedSignature: Hex; signatureObj: Signature; }; export type SignMultisigUserOperationParams< TAccount extends SmartContractAccount | undefined = | SmartContractAccount | undefined, TEntryPointVersion extends GetEntryPointFromAccount = GetEntryPointFromAccount, > = { userOperationRequest: UserOperationRequest; signatures: Signature[]; } & GetAccountParameter & GetPluginAddressParameter; export type ProposeUserOperationResult< TAccount extends SmartContractAccount | undefined = | SmartContractAccount | undefined, TEntryPointVersion extends GetEntryPointFromAccount = GetEntryPointFromAccount, > = { request: UserOperationRequest; aggregatedSignature: Hex; signatureObj: Signature; }; export type MultisigUserOperationContext = { userOpSignatureType: | Extract | Extract; aggregatedSignature?: Hex; signatures?: Signature[]; };