export type JsonRpcId = string | number | undefined; export type JsonRpcResult = string | number | boolean | Record; export type JsonRpcIdentifier = string & ('2.0' | '1.0'); export interface JsonRpcError { readonly code: number; readonly message: string; readonly data?: T; } export interface JsonRpcResponseWithError { readonly id: JsonRpcId; readonly jsonrpc: JsonRpcIdentifier; readonly error: JsonRpcError; readonly result?: never; } export interface JsonRpcResponseWithResult { readonly id: JsonRpcId; readonly jsonrpc: JsonRpcIdentifier; readonly error?: never; readonly result: T; } export interface SubscriptionParams { readonly subscription: string; readonly result: T; } export interface JsonRpcSubscriptionResultOld { readonly error?: never; readonly params?: never; readonly type: string; readonly data: SubscriptionParams; } export interface JsonRpcNotification { readonly id?: JsonRpcId; readonly jsonrpc: JsonRpcIdentifier; readonly method: string; readonly params: SubscriptionParams; readonly result: never; readonly data?: never; } export interface JsonRpcSubscriptionResult { readonly id: number; readonly jsonrpc: string; readonly result: string; readonly method: never; readonly params: never; readonly data?: never; } export interface JsonRpcRequest { readonly id: JsonRpcId; readonly jsonrpc: JsonRpcIdentifier; readonly method: string; readonly params?: T; } export interface JsonRpcOptionalRequest extends Omit, 'id' | 'jsonrpc'> { readonly id?: JsonRpcId; readonly jsonrpc?: JsonRpcIdentifier; } export type JsonRpcBatchRequest = JsonRpcRequest[]; export type JsonRpcPayload = JsonRpcRequest | JsonRpcBatchRequest; export type JsonRpcBatchResponse = (JsonRpcResponseWithError | JsonRpcResponseWithResult)[]; export type JsonRpcResponse = JsonRpcResponseWithError | JsonRpcResponseWithResult | JsonRpcBatchResponse; //# sourceMappingURL=json_rpc_types.d.ts.map