import type { DualKeyAccount } from '../accounts/types.mjs'; import type { TransportInstance } from '../transports/types.mjs'; type HeadersInit = Record; export type ClientRequestArgs = { method: string; params: readonly unknown[]; }; export type ClientRequestOptions = { signal?: AbortSignal; headers?: HeadersInit; }; export type ClientRequestFn = (args: ClientRequestArgs, opts?: ClientRequestOptions) => Promise; export type Client = { transport: TransportInstance; account: TAccount; request: ClientRequestFn; extend: (fn: (client: Client) => Ext) => Client & Ext; }; export type PublicClient = Client; export type WalletClient = Client; export {};