/**
 * Query Tool - Natural Language Cluster Intelligence
 *
 * Provides natural language query interface to discover and understand
 * cluster capabilities and resources.
 *
 * PRD #291: Cluster Query Tool - Natural Language Cluster Intelligence
 */
import { z } from 'zod';
import { PluginManager } from '../core/plugin-manager';
import { CachedVisualization } from '../core/visualization';
export declare const QUERY_TOOL_NAME = "query";
export declare const QUERY_TOOL_DESCRIPTION = "Natural language query interface for Kubernetes cluster intelligence. Ask any questions about your cluster resources, capabilities, and status in plain English. Examples: \"What databases are running?\", \"Describe the nginx deployment\", \"Show me pods in the kube-system namespace\", \"What operators are installed?\", \"Is my-postgres healthy?\"";
export declare const QUERY_TOOL_INPUT_SCHEMA: {
    intent: z.ZodString;
    interaction_id: z.ZodOptional<z.ZodString>;
};
export interface QueryInput {
    intent: string;
    interaction_id?: string;
}
export interface QuerySessionData {
    toolName: 'query';
    intent: string;
    summary: string;
    toolsUsed: string[];
    iterations: number;
    toolCallsExecuted: Array<{
        tool: string;
        input: unknown;
        output: unknown;
    }>;
    cachedVisualization?: CachedVisualization;
}
export interface QueryOutput {
    success: boolean;
    summary: string;
    toolsUsed: string[];
    iterations: number;
    sessionId?: string;
    visualizationUrl?: string;
    agentInstructions: string;
    error?: {
        code: string;
        message: string;
    };
    content?: Array<{
        type: string;
        text: string;
    }>;
}
/**
 * Main query tool handler
 *
 * PRD #343: When pluginManager is provided, kubectl tools are routed through
 * the plugin system instead of local execution.
 */
interface QueryToolArgs {
    intent?: string;
    interaction_id?: string;
}
export declare function handleQueryTool(args: QueryToolArgs, pluginManager?: PluginManager): Promise<QueryOutput | {
    content: Array<{
        type: string;
        text: string;
    }>;
}>;
export {};
//# sourceMappingURL=query.d.ts.map