export interface JsonRpcRequest { jsonrpc: '2.0'; id: number | string; method: string; params: TParams; } export interface JsonRpcSuccess { jsonrpc: '2.0'; id: number | string; result: TResult; } export interface JsonRpcErrorObject { code: number; message: string; data?: unknown; } export interface JsonRpcError { jsonrpc: '2.0'; id: number | string | null; error: JsonRpcErrorObject; } export type JsonRpcResponse = JsonRpcSuccess | JsonRpcError; export interface RpcFetchOptions { url?: string; headers?: Record; signal?: AbortSignal; useLimiter?: boolean | null; }