import { type Chain, type Client, type PublicActions, type PublicRpcSchema, type Transport } from "viem"; import type { SmartContractAccount } from "../account/smartContractAccount.js"; import type { BundlerActions, BundlerRpcSchema } from "../client/decorators/bundlerClient.js"; import type { ClientMiddlewareConfig } from "../client/types.js"; import type { ClientMiddleware } from "./types.js"; /** * Middleware client type * * @template {Transport} TTransport * @template {Chain | undefined} TChain * @template {SmartContractAccount | undefined} TAccount */ export type MiddlewareClient = Client; /** * function that takes in ClientMiddlewareConfig used during client initiation * and returns the middleware actions object that the smart account client extends with * * @param {ClientMiddlewareConfig} overrides config used during client initiation for overriding default middlewares * @returns {(client: MiddlewareClient) => { middleware: ClientMiddleware }} middleware actions object */ export declare const middlewareActions: (overrides: ClientMiddlewareConfig) => (client: MiddlewareClient) => { middleware: ClientMiddleware; };