import { z } from 'zod';
export interface MCPRequest {
    jsonrpc: '2.0';
    id?: string | number;
    method: string;
    params?: any;
}
export interface MCPResponse {
    jsonrpc: '2.0';
    id?: string | number;
    result?: any;
    error?: MCPError;
}
export interface MCPError {
    code: number;
    message: string;
    data?: any;
}
export interface MCPTool {
    name: string;
    description: string;
    inputSchema: z.ZodSchema;
    outputSchema?: z.ZodSchema;
    handler: (params: any) => Promise<any>;
}
export declare const MCPErrorCodes: {
    readonly PARSE_ERROR: -32700;
    readonly INVALID_REQUEST: -32600;
    readonly METHOD_NOT_FOUND: -32601;
    readonly INVALID_PARAMS: -32602;
    readonly INTERNAL_ERROR: -32603;
    readonly TOOL_ERROR: -32000;
};
export declare class MCPServer {
    private name;
    private version;
    private description;
    private tools;
    private resources;
    constructor(name: string, version: string, description: string);
    registerTool(tool: MCPTool): void;
    registerResource(uri: string, resource: any): void;
    handleRequest(request: MCPRequest): Promise<MCPResponse>;
    private handleInitialize;
    private handleToolsList;
    private handleToolCall;
    private handleResourcesList;
    private handleResourceRead;
    private createErrorResponse;
    private zodToJsonSchema;
}
//# sourceMappingURL=protocol.d.ts.map