import { ErrorCode, ErrorDetails } from "./error.interface"; export interface RpcMessageBase { jsonrpc: "2.0"; id: string | number | null; } export interface RpcRequest extends RpcMessageBase { method: string; params?: Record; } export interface RpcResponse extends RpcMessageBase { result?: unknown; error?: { code: ErrorCode; message: string; data?: unknown; }; } export type RpcMethod = (param?: any) => Promise | Promise | Promise> | Promise | any | any[] | Map | void | undefined; export interface RpcMethodSchema { name: string; description: string; parameters: Record; returns: { type: string; description: string; }; } export interface RpcMethodDefinition { method: RpcMethod; name: string; schema?: RpcMethodSchema; validate?: (params: unknown) => Promise<{ valid: boolean; message?: string; }>; } export interface RpcMethodRegistry { [key: string]: RpcMethodDefinition; } export interface ValidationResult { isValid: boolean; errors?: Array; } export interface Config { enabled: boolean; options?: Record; }