import type { Tool } from '@modelcontextprotocol/sdk/types.js';
import { z } from 'zod';
import { type MCPResponse } from '../types/index.js';
declare const RecommendDishCombinationInput: z.ZodObject<{
    preferences: z.ZodObject<{
        numberOfPeople: z.ZodNumber;
        occasion: z.ZodOptional<z.ZodEnum<["日常", "聚餐", "节日", "招待客人", "特殊场合"]>>;
        budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
        dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        preferredFlavors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        cookingTime: z.ZodOptional<z.ZodString>;
        skillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
        seasonalPreference: z.ZodOptional<z.ZodBoolean>;
        nutritionalBalance: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        numberOfPeople: number;
        dietaryRestrictions?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        occasion?: "日常" | "聚餐" | "节日" | "招待客人" | "特殊场合" | undefined;
        preferredFlavors?: string[] | undefined;
        cookingTime?: string | undefined;
        skillLevel?: "初学者" | "中级" | "高级" | undefined;
        seasonalPreference?: boolean | undefined;
        nutritionalBalance?: boolean | undefined;
    }, {
        numberOfPeople: number;
        dietaryRestrictions?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        occasion?: "日常" | "聚餐" | "节日" | "招待客人" | "特殊场合" | undefined;
        preferredFlavors?: string[] | undefined;
        cookingTime?: string | undefined;
        skillLevel?: "初学者" | "中级" | "高级" | undefined;
        seasonalPreference?: boolean | undefined;
        nutritionalBalance?: boolean | undefined;
    }>;
    excludeRecipeIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    includeRecipeIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    maxDishes: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    minDishes: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    includeAnalysis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    includeAlternatives: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    preferences: {
        numberOfPeople: number;
        dietaryRestrictions?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        occasion?: "日常" | "聚餐" | "节日" | "招待客人" | "特殊场合" | undefined;
        preferredFlavors?: string[] | undefined;
        cookingTime?: string | undefined;
        skillLevel?: "初学者" | "中级" | "高级" | undefined;
        seasonalPreference?: boolean | undefined;
        nutritionalBalance?: boolean | undefined;
    };
    excludeRecipeIds?: string[] | undefined;
    includeRecipeIds?: string[] | undefined;
    maxDishes?: number | undefined;
    minDishes?: number | undefined;
    includeAnalysis?: boolean | undefined;
    includeAlternatives?: boolean | undefined;
}, {
    preferences: {
        numberOfPeople: number;
        dietaryRestrictions?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        occasion?: "日常" | "聚餐" | "节日" | "招待客人" | "特殊场合" | undefined;
        preferredFlavors?: string[] | undefined;
        cookingTime?: string | undefined;
        skillLevel?: "初学者" | "中级" | "高级" | undefined;
        seasonalPreference?: boolean | undefined;
        nutritionalBalance?: boolean | undefined;
    };
    excludeRecipeIds?: string[] | undefined;
    includeRecipeIds?: string[] | undefined;
    maxDishes?: number | undefined;
    minDishes?: number | undefined;
    includeAnalysis?: boolean | undefined;
    includeAlternatives?: boolean | undefined;
}>;
type RecommendDishCombinationInput = z.infer<typeof RecommendDishCombinationInput>;
declare const DishCombinationResponse: z.ZodObject<{
    combination: z.ZodAny;
    analysis: z.ZodOptional<z.ZodObject<{
        nutritionalScore: z.ZodNumber;
        flavorHarmony: z.ZodNumber;
        difficultyBalance: z.ZodNumber;
        timeEfficiency: z.ZodNumber;
        overallScore: z.ZodNumber;
        strengths: z.ZodArray<z.ZodString, "many">;
        improvements: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        nutritionalScore: number;
        flavorHarmony: number;
        difficultyBalance: number;
        timeEfficiency: number;
        overallScore: number;
        strengths: string[];
        improvements: string[];
    }, {
        nutritionalScore: number;
        flavorHarmony: number;
        difficultyBalance: number;
        timeEfficiency: number;
        overallScore: number;
        strengths: string[];
        improvements: string[];
    }>>;
    alternatives: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        keyDifferences: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        name: string;
        description: string;
        keyDifferences: string[];
    }, {
        name: string;
        description: string;
        keyDifferences: string[];
    }>, "many">>;
    cookingPlan: z.ZodObject<{
        preparationOrder: z.ZodArray<z.ZodString, "many">;
        timelineEstimate: z.ZodString;
        parallelTasks: z.ZodArray<z.ZodString, "many">;
        criticalTiming: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        preparationOrder: string[];
        timelineEstimate: string;
        parallelTasks: string[];
        criticalTiming: string[];
    }, {
        preparationOrder: string[];
        timelineEstimate: string;
        parallelTasks: string[];
        criticalTiming: string[];
    }>;
}, "strip", z.ZodTypeAny, {
    cookingPlan: {
        preparationOrder: string[];
        timelineEstimate: string;
        parallelTasks: string[];
        criticalTiming: string[];
    };
    alternatives?: {
        name: string;
        description: string;
        keyDifferences: string[];
    }[] | undefined;
    combination?: any;
    analysis?: {
        nutritionalScore: number;
        flavorHarmony: number;
        difficultyBalance: number;
        timeEfficiency: number;
        overallScore: number;
        strengths: string[];
        improvements: string[];
    } | undefined;
}, {
    cookingPlan: {
        preparationOrder: string[];
        timelineEstimate: string;
        parallelTasks: string[];
        criticalTiming: string[];
    };
    alternatives?: {
        name: string;
        description: string;
        keyDifferences: string[];
    }[] | undefined;
    combination?: any;
    analysis?: {
        nutritionalScore: number;
        flavorHarmony: number;
        difficultyBalance: number;
        timeEfficiency: number;
        overallScore: number;
        strengths: string[];
        improvements: string[];
    } | undefined;
}>;
/**
 * Tool definition for recommending dish combinations
 */
export declare const recommendDishCombinationTool: Tool;
/**
 * Handler for recommend_dish_combination tool
 */
export declare function handleRecommendDishCombination(input: RecommendDishCombinationInput): Promise<MCPResponse<z.infer<typeof DishCombinationResponse>>>;
export {};
//# sourceMappingURL=recommendDishCombination.d.ts.map