import type { JSONRPCClient } from "./client"; import type { JSONRPCServer } from "./server"; import type { JSONRPCServerAndClient } from "./server-and-client"; type MethodsType = Record any>; export interface TypedJSONRPCClient extends JSONRPCClient { request>(method: Method, ...args: Parameters[0] extends undefined ? [void, ClientParams] : [Parameters[0], ClientParams]): PromiseLike>; } export interface TypedJSONRPCServer extends JSONRPCServer { addMethod>(name: Method, method: (params: Parameters[0], serverParams: ServerParams) => ReturnType | PromiseLike>): void; } export interface TypedJSONRPCServerAndClient extends JSONRPCServerAndClient { request>(method: Method, ...args: Parameters[0] extends undefined ? [void, ClientParams] : [Parameters[0], ClientParams]): PromiseLike>; addMethod>(name: Method, method: (params: Parameters[0], serverParams: ServerParams) => ReturnType | PromiseLike>): void; } export {};