export type ID = string | number | null; export type JSONRPCResult = string | number | boolean | object; export interface JSONRPCErrorObject { code: number; message: string; data?: JSONRPCResult; } export interface RequestObject { readonly id: ID; readonly jsonrpc: string; readonly method: string; readonly params?: Record; } export type NotificationRequest = Omit; export interface ResponseObjectWithError { readonly id: ID; readonly jsonrpc: string; readonly error: JSONRPCErrorObject; readonly result?: never; } export interface ResponseObjectWithResult { readonly id: ID; readonly jsonrpc: string; readonly error?: never; readonly result: T; } export type ResponseObject = ResponseObjectWithError | ResponseObjectWithResult;