import { Tool } from '@modelcontextprotocol/server'; import { KubernetesClient } from '../../kubernetes/KubernetesClient.js'; /** * Base interface for all Argo MCP tool commands */ export interface ArgoBaseTool { /** * The tool definition for MCP registration */ tool: Tool; /** * Execute the command with given parameters * @param params Command parameters * @param client Optional Kubernetes client (provided by plugin when available) */ execute(params: any, client?: KubernetesClient): Promise; } /** * Common parameter schemas used across multiple Argo commands */ export declare const ArgoCommonSchemas: { namespace: { type: string; description: string; optional: boolean; }; labelSelector: { type: string; description: string; optional: boolean; }; workflowName: { type: string; description: string; }; cronWorkflowName: { type: string; description: string; }; outputFormat: { type: string; description: string; enum: string[]; optional: boolean; }; selector: { type: string; description: string; optional: boolean; }; allNamespaces: { type: string; description: string; optional: boolean; }; }; /** * Executes an argo command using the argo CLI * @param args Array of command arguments * @param argoExecutable Optional argo executable path (for fallback scenarios) * @returns Promise with the command output */ export declare function executeArgoCommand(args: string[], argoExecutable?: string): Promise; /** * Validates that argo CLI is available with fallback detection */ export declare function validateArgoCLI(): Promise; /** * Check if a Kubernetes API error is recoverable (should trigger fallback to CLI) */ export declare function isRecoverableK8sError(error: any): boolean; /** * Mark the transport method used (k8s, cli) in the result */ export declare function markTransport(value: T, transport: 'k8s' | 'cli'): T; //# sourceMappingURL=BaseTool.d.ts.map