import * as s from "jsonv-ts"; import type { McpServer } from "./server"; declare const rpcRequest: s.ObjectSchema<{ readonly method: s.StringSchema & s.IStringOptions; readonly params: { [x: string]: any; [x: number]: any; } & s.Schema; readonly jsonrpc: s.StringSchema<{ readonly const: "2.0"; }> & { readonly const: "2.0"; }; readonly id: { default?: any; enum?: (readonly any[] | any[]) | undefined; const?: any; } & s.Schema; }, s.IObjectOptions> & s.IObjectOptions; declare const rpcResponse: s.ObjectSchema<{ readonly result: { default?: any; enum?: (readonly any[] | any[]) | undefined; const?: any; properties: {}; additionalProperties?: (s.Schema | false) | undefined; patternProperties?: Record | undefined; dependencies?: Record | undefined; dependentRequired?: Record | undefined; required: string[] | undefined; dependentSchemas?: Record | undefined; minProperties?: number | undefined; maxProperties?: number | undefined; unevaluatedProperties?: (s.Schema | false) | undefined; propertyNames?: s.Schema | undefined; $defs?: Record | undefined; strict: () => s.ObjectSchema<{}, s.Merge>; partial: () => s.ObjectSchema<{}, s.IObjectOptions>; } & s.Schema; readonly error: { default?: any; enum?: (readonly any[] | any[]) | undefined; const?: any; properties: {}; additionalProperties?: (s.Schema | false) | undefined; patternProperties?: Record | undefined; dependencies?: Record | undefined; dependentRequired?: Record | undefined; required: string[] | undefined; dependentSchemas?: Record | undefined; minProperties?: number | undefined; maxProperties?: number | undefined; unevaluatedProperties?: (s.Schema | false) | undefined; propertyNames?: s.Schema | undefined; $defs?: Record | undefined; strict: () => s.ObjectSchema<{}, s.Merge>; partial: () => s.ObjectSchema<{}, s.IObjectOptions>; } & s.Schema; readonly jsonrpc: s.StringSchema<{ readonly const: "2.0"; }> & { readonly const: "2.0"; }; readonly id: { default?: any; enum?: (readonly any[] | any[]) | undefined; const?: any; } & s.Schema; }, s.IObjectOptions> & s.IObjectOptions; export type TRpcRawRequest = s.Static; export interface TRpcRequest extends Omit { params: S extends s.Schema ? s.Static : S; } export type TRpcResponse = Omit, "result"> & { result?: Result; }; export type TRpcMessage = TRpcRawRequest | TRpcResponse; export type TRpcId = string | number; export type TRpcMessageResponse = Awaited>; export type TRpcMessageResult = TRpcMessageResponse extends TRpcResponse ? R : never; export type TRpcMessageParams = T extends RpcMessage ? s.Static

: never; export declare abstract class RpcMessage { protected readonly server: McpServer; abstract readonly method: Method; abstract readonly params: Params; constructor(server: McpServer); static isValidMessage(message: unknown): message is TRpcRawRequest; is(message: TRpcRawRequest): boolean; abstract respond(message: TRpcRequest | TRpcRawRequest, raw?: unknown): Promise; protected formatRespond(message: TRpcRequest, result: Result): TRpcResponse; } export declare abstract class RpcNotification extends RpcMessage { readonly params: s.Schema & s.IAnyOptions; constructor(server: McpServer); abstract handle(message: TRpcRequest): Promise; respond(message: TRpcRequest): Promise; } export {};