/**
 * Remediate Tool - AI-powered Kubernetes issue analysis and remediation
 */
import { z } from 'zod';
import { BaseVisualizationData } from '../core/visualization';
export declare const REMEDIATE_TOOL_NAME = "remediate";
export declare const REMEDIATE_TOOL_DESCRIPTION = "AI-powered Kubernetes issue analysis that provides root cause identification and actionable remediation steps. Unlike basic kubectl commands, this tool performs multi-step investigation, correlates cluster data, and generates intelligent solutions. Use when users want to understand WHY something is broken, not just see raw status. Ideal for: troubleshooting failures, diagnosing performance issues, analyzing pod problems, investigating networking/storage issues, or any \"what's wrong\" questions.";
export declare const REMEDIATE_TOOL_INPUT_SCHEMA: {
    issue: z.ZodOptional<z.ZodString>;
    mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        manual: "manual";
        automatic: "automatic";
    }>>>;
    confidenceThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    maxRiskLevel: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        low: "low";
        medium: "medium";
        high: "high";
    }>>>;
    executeChoice: z.ZodOptional<z.ZodNumber>;
    sessionId: z.ZodOptional<z.ZodString>;
    executedCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
    interaction_id: z.ZodOptional<z.ZodString>;
};
export interface RemediateInput {
    issue?: string;
    mode?: 'manual' | 'automatic';
    confidenceThreshold?: number;
    maxRiskLevel?: 'low' | 'medium' | 'high';
    executeChoice?: number;
    sessionId?: string;
    executedCommands?: string[];
    interaction_id?: string;
}
export interface RemediateSessionData extends BaseVisualizationData {
    toolName: 'remediate';
    issue: string;
    mode: 'manual' | 'automatic';
    interaction_id?: string;
    finalAnalysis?: RemediateOutput;
    status: 'investigating' | 'analysis_complete' | 'failed' | 'executed_successfully' | 'executed_with_errors' | 'cancelled';
    executionResults?: ExecutionResult[];
}
export type RemediateSession = {
    sessionId: string;
    createdAt: string;
    updatedAt: string;
    data: RemediateSessionData;
};
export interface RemediationAction {
    description: string;
    command?: string;
    risk: 'low' | 'medium' | 'high';
    rationale: string;
    gitSource?: {
        repoURL: string;
        repoPath?: string;
        branch: string;
        files: Array<{
            path: string;
            content: string;
            description: string;
        }>;
    };
}
export interface ExecutionResult {
    action: string;
    success: boolean;
    output?: string;
    error?: string;
    timestamp: Date;
}
export interface ExecutionChoice {
    id: number;
    label: string;
    description: string;
    risk?: 'low' | 'medium' | 'high';
}
export interface RemediateOutput {
    status: 'success' | 'failed' | 'awaiting_user_approval' | 'partially_resolved';
    sessionId: string;
    investigation: {
        iterations: number;
        dataGathered: string[];
    };
    analysis: {
        rootCause: string;
        confidence: number;
        factors: string[];
    };
    remediation: {
        summary: string;
        actions: RemediationAction[];
        risk: 'low' | 'medium' | 'high';
    };
    validationIntent?: string;
    guidance?: string;
    agentInstructions?: string;
    nextAction?: string;
    message?: string;
    executionChoices?: ExecutionChoice[];
    executed?: boolean;
    results?: ExecutionResult[];
    fallbackReason?: string;
    mode?: 'manual' | 'automatic';
    pullRequest?: {
        url: string;
        number: number;
        branch: string;
        baseBranch: string;
        filesChanged: string[];
    };
}
/**
 * Remediate tool response type
 */
export interface RemediateToolResponse {
    content: Array<{
        type: 'text';
        text: string;
    }>;
}
/**
 * AI Final Analysis Response interface matching final analysis prompt format
 */
interface AIFinalAnalysisResponse {
    issueStatus: 'active' | 'resolved' | 'non_existent';
    rootCause: string;
    confidence: number;
    factors: string[];
    remediation: {
        summary: string;
        actions: RemediationAction[];
        risk: 'low' | 'medium' | 'high';
    };
    validationIntent?: string;
}
/**
 * Parse AI final analysis response
 */
export declare function parseAIFinalAnalysis(aiResponse: string): AIFinalAnalysisResponse;
/**
 * Main tool handler for remediate tool
 *
 * PRD #343: All kubectl operations go through plugin.
 * PRD #359: Uses unified plugin registry - no pluginManager parameter needed.
 */
export declare function handleRemediateTool(args: RemediateInput): Promise<RemediateToolResponse>;
export {};
//# sourceMappingURL=remediate.d.ts.map