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 MCPNotification {
    jsonrpc: '2.0';
    method: string;
    params?: any;
}
export type MCPToolMethod = 'tools/list' | 'tools/call';
export interface MCPToolCallRequest {
    name: string;
    arguments: Record<string, any>;
}
export interface MCPToolCallResponse {
    content: Array<{
        type: 'text';
        text: string;
    }>;
}
export interface ProcessConfig {
    executablePath: string;
    args?: string[];
    env?: Record<string, string>;
    timeout: number;
    maxRestarts: number;
    restartDelay: number;
}
export interface ProcessStatus {
    isRunning: boolean;
    pid?: number;
    startTime?: Date;
    restartCount: number;
    lastError?: string;
    lastRestart?: Date;
}
export interface MCPClientMetrics {
    totalRequests: number;
    successfulRequests: number;
    failedRequests: number;
    averageResponseTime: number;
    processRestarts: number;
    uptime: number;
    lastHealthCheck: Date;
}
//# sourceMappingURL=mcp.d.ts.map