import { z } from 'zod';
export declare const ToolRecommendationSchema: z.ZodObject<{
    toolName: z.ZodString;
    confidence: z.ZodNumber;
    rationale: z.ZodString;
    priority: z.ZodNumber;
    alternativeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    toolName: string;
    confidence: number;
    rationale: string;
    priority: number;
    alternativeTools?: string[] | undefined;
}, {
    toolName: string;
    confidence: number;
    rationale: string;
    priority: number;
    alternativeTools?: string[] | undefined;
}>;
export declare const StepRecommendationSchema: z.ZodObject<{
    stepDescription: z.ZodString;
    recommendedTools: z.ZodArray<z.ZodObject<{
        toolName: z.ZodString;
        confidence: z.ZodNumber;
        rationale: z.ZodString;
        priority: z.ZodNumber;
        alternativeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }, {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }>, "many">;
    expectedOutcome: z.ZodString;
    nextStepConditions: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    stepDescription: string;
    recommendedTools: {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }[];
    expectedOutcome: string;
    nextStepConditions: string[];
}, {
    stepDescription: string;
    recommendedTools: {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }[];
    expectedOutcome: string;
    nextStepConditions: string[];
}>;
export declare const CurrentStepSchema: z.ZodObject<{
    stepDescription: z.ZodString;
    recommendedTools: z.ZodArray<z.ZodObject<{
        toolName: z.ZodString;
        confidence: z.ZodNumber;
        rationale: z.ZodString;
        priority: z.ZodNumber;
        alternativeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }, {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }>, "many">;
    expectedOutcome: z.ZodString;
    nextStepConditions: z.ZodArray<z.ZodString, "many">;
} & {
    stepNumber: z.ZodOptional<z.ZodNumber>;
    estimatedDuration: z.ZodOptional<z.ZodString>;
    complexityLevel: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
}, "strip", z.ZodTypeAny, {
    stepDescription: string;
    recommendedTools: {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }[];
    expectedOutcome: string;
    nextStepConditions: string[];
    stepNumber?: number | undefined;
    estimatedDuration?: string | undefined;
    complexityLevel?: "low" | "medium" | "high" | undefined;
}, {
    stepDescription: string;
    recommendedTools: {
        toolName: string;
        confidence: number;
        rationale: string;
        priority: number;
        alternativeTools?: string[] | undefined;
    }[];
    expectedOutcome: string;
    nextStepConditions: string[];
    stepNumber?: number | undefined;
    estimatedDuration?: string | undefined;
    complexityLevel?: "low" | "medium" | "high" | undefined;
}>;
export declare const ToolUsageHistorySchema: z.ZodObject<{
    toolName: z.ZodString;
    usedAt: z.ZodString;
    effectivenessScore: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    toolName: string;
    usedAt: string;
    effectivenessScore?: number | undefined;
}, {
    toolName: string;
    usedAt: string;
    effectivenessScore?: number | undefined;
}>;
export declare const ThoughtSchema: z.ZodObject<{
    thought: z.ZodString;
    thoughtNumber: z.ZodNumber;
    totalThoughts: z.ZodNumber;
    nextThoughtNeeded: z.ZodBoolean;
    isRevision: z.ZodOptional<z.ZodBoolean>;
    revisesThought: z.ZodOptional<z.ZodNumber>;
    branchFromThought: z.ZodOptional<z.ZodNumber>;
    branchId: z.ZodOptional<z.ZodString>;
    needsMoreThoughts: z.ZodOptional<z.ZodBoolean>;
    currentStep: z.ZodOptional<z.ZodObject<{
        stepDescription: z.ZodString;
        recommendedTools: z.ZodArray<z.ZodObject<{
            toolName: z.ZodString;
            confidence: z.ZodNumber;
            rationale: z.ZodString;
            priority: z.ZodNumber;
            alternativeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }, {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }>, "many">;
        expectedOutcome: z.ZodString;
        nextStepConditions: z.ZodArray<z.ZodString, "many">;
    } & {
        stepNumber: z.ZodOptional<z.ZodNumber>;
        estimatedDuration: z.ZodOptional<z.ZodString>;
        complexityLevel: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
    }, "strip", z.ZodTypeAny, {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
        stepNumber?: number | undefined;
        estimatedDuration?: string | undefined;
        complexityLevel?: "low" | "medium" | "high" | undefined;
    }, {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
        stepNumber?: number | undefined;
        estimatedDuration?: string | undefined;
        complexityLevel?: "low" | "medium" | "high" | undefined;
    }>>;
    previousSteps: z.ZodOptional<z.ZodArray<z.ZodObject<{
        stepDescription: z.ZodString;
        recommendedTools: z.ZodArray<z.ZodObject<{
            toolName: z.ZodString;
            confidence: z.ZodNumber;
            rationale: z.ZodString;
            priority: z.ZodNumber;
            alternativeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }, {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }>, "many">;
        expectedOutcome: z.ZodString;
        nextStepConditions: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
    }, {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
    }>, "many">>;
    remainingSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    toolUsageHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{
        toolName: z.ZodString;
        usedAt: z.ZodString;
        effectivenessScore: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        toolName: string;
        usedAt: string;
        effectivenessScore?: number | undefined;
    }, {
        toolName: string;
        usedAt: string;
        effectivenessScore?: number | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    thought: string;
    thoughtNumber: number;
    totalThoughts: number;
    nextThoughtNeeded: boolean;
    isRevision?: boolean | undefined;
    revisesThought?: number | undefined;
    branchFromThought?: number | undefined;
    branchId?: string | undefined;
    needsMoreThoughts?: boolean | undefined;
    currentStep?: {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
        stepNumber?: number | undefined;
        estimatedDuration?: string | undefined;
        complexityLevel?: "low" | "medium" | "high" | undefined;
    } | undefined;
    previousSteps?: {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
    }[] | undefined;
    remainingSteps?: string[] | undefined;
    toolUsageHistory?: {
        toolName: string;
        usedAt: string;
        effectivenessScore?: number | undefined;
    }[] | undefined;
}, {
    thought: string;
    thoughtNumber: number;
    totalThoughts: number;
    nextThoughtNeeded: boolean;
    isRevision?: boolean | undefined;
    revisesThought?: number | undefined;
    branchFromThought?: number | undefined;
    branchId?: string | undefined;
    needsMoreThoughts?: boolean | undefined;
    currentStep?: {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
        stepNumber?: number | undefined;
        estimatedDuration?: string | undefined;
        complexityLevel?: "low" | "medium" | "high" | undefined;
    } | undefined;
    previousSteps?: {
        stepDescription: string;
        recommendedTools: {
            toolName: string;
            confidence: number;
            rationale: string;
            priority: number;
            alternativeTools?: string[] | undefined;
        }[];
        expectedOutcome: string;
        nextStepConditions: string[];
    }[] | undefined;
    remainingSteps?: string[] | undefined;
    toolUsageHistory?: {
        toolName: string;
        usedAt: string;
        effectivenessScore?: number | undefined;
    }[] | undefined;
}>;
export declare const ToolContextSchema: z.ZodObject<{
    availableTools: z.ZodArray<z.ZodString, "many">;
    userPreferences: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    sessionHistory: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    problemDomain: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    availableTools: string[];
    userPreferences?: Record<string, any> | undefined;
    sessionHistory?: string[] | undefined;
    problemDomain?: string | undefined;
}, {
    availableTools: string[];
    userPreferences?: Record<string, any> | undefined;
    sessionHistory?: string[] | undefined;
    problemDomain?: string | undefined;
}>;
export type ToolRecommendation = z.infer<typeof ToolRecommendationSchema>;
export type StepRecommendation = z.infer<typeof StepRecommendationSchema>;
export type CurrentStep = z.infer<typeof CurrentStepSchema>;
export type ToolUsageHistory = z.infer<typeof ToolUsageHistorySchema>;
export type ThoughtData = z.infer<typeof ThoughtSchema>;
export type ToolContext = z.infer<typeof ToolContextSchema>;
export type EnhancedThoughtData = ThoughtData;
