import type { Address, Chain, Hex } from "viem"; import type { Account } from "viem/accounts"; import type { CompressedUserOperation, HexData32, UserOperation } from "./index.js"; export interface ReferencedCodeHashes { addresses: string[]; hash: string; } export declare const deriveUserOperation: (op: MempoolUserOperation) => UserOperation; export declare const isCompressedType: (op: MempoolUserOperation) => boolean; export type MempoolUserOperation = UserOperation | CompressedUserOperation; export type TransactionInfo = { transactionType: "default" | "compressed"; transactionHash: HexData32; previousTransactionHashes: HexData32[]; entryPoint: Address; isVersion06: boolean; transactionRequest: { account: Account; to: Address; data: Hex; gas: bigint; chain: Chain; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; nonce: number; }; executor: Account; userOperationInfos: UserOperationInfo[]; lastReplaced: number; firstSubmitted: number; timesPotentiallyIncluded: number; }; export type UserOperationInfo = { mempoolUserOperation: MempoolUserOperation; entryPoint: Address; userOperationHash: HexData32; lastReplaced: number; firstSubmitted: number; referencedContracts?: ReferencedCodeHashes; }; export declare enum SubmissionStatus { NotSubmitted = "not_submitted", Rejected = "rejected", Submitted = "submitted", Included = "included" } export type SubmittedUserOperation = { userOperation: UserOperationInfo; transactionInfo: TransactionInfo; }; type Result = Success | Failure | Resubmit; interface Success { status: "success"; value: T; } interface Failure { status: "failure"; error: E; } interface Resubmit { status: "resubmit"; info: R; } export type BundleResult = Result<{ userOperation: UserOperationInfo; transactionInfo: TransactionInfo; }, { reason: string; userOpHash: HexData32; entryPoint: Address; }, { reason: string; userOpHash: HexData32; userOperation: MempoolUserOperation; entryPoint: Address; }>; export {}; //# sourceMappingURL=mempool.d.ts.map