import type { Tool } from '@modelcontextprotocol/sdk/types.js';
import { z } from 'zod';
import { type MCPResponse } from '../types/index.js';
declare const RecommendMealPlanInput: z.ZodObject<{
    preferences: z.ZodObject<{
        numberOfPeople: z.ZodNumber;
        dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>, "many">>;
        allergies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        preferredCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        excludedCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
        cookingSkillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
        timeConstraints: z.ZodOptional<z.ZodObject<{
            maxPrepTime: z.ZodOptional<z.ZodString>;
            maxCookTime: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        }, {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        }>>;
        nutritionalGoals: z.ZodOptional<z.ZodObject<{
            targetCalories: z.ZodOptional<z.ZodNumber>;
            highProtein: z.ZodOptional<z.ZodBoolean>;
            lowCarb: z.ZodOptional<z.ZodBoolean>;
            balanced: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        }, {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        numberOfPeople: number;
        dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
        allergies?: string[] | undefined;
        preferredCategories?: string[] | undefined;
        excludedCategories?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
        timeConstraints?: {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        } | undefined;
        nutritionalGoals?: {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        } | undefined;
    }, {
        numberOfPeople: number;
        dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
        allergies?: string[] | undefined;
        preferredCategories?: string[] | undefined;
        excludedCategories?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
        timeConstraints?: {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        } | undefined;
        nutritionalGoals?: {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        } | undefined;
    }>;
    startDate: z.ZodOptional<z.ZodString>;
    planDuration: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    includeShoppingList: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    consolidateIngredients: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    preferences: {
        numberOfPeople: number;
        dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
        allergies?: string[] | undefined;
        preferredCategories?: string[] | undefined;
        excludedCategories?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
        timeConstraints?: {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        } | undefined;
        nutritionalGoals?: {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        } | undefined;
    };
    startDate?: string | undefined;
    planDuration?: number | undefined;
    includeShoppingList?: boolean | undefined;
    consolidateIngredients?: boolean | undefined;
}, {
    preferences: {
        numberOfPeople: number;
        dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
        allergies?: string[] | undefined;
        preferredCategories?: string[] | undefined;
        excludedCategories?: string[] | undefined;
        budgetLevel?: "中等" | "经济" | "高档" | undefined;
        cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
        timeConstraints?: {
            maxPrepTime?: string | undefined;
            maxCookTime?: string | undefined;
        } | undefined;
        nutritionalGoals?: {
            targetCalories?: number | undefined;
            highProtein?: boolean | undefined;
            lowCarb?: boolean | undefined;
            balanced?: boolean | undefined;
        } | undefined;
    };
    startDate?: string | undefined;
    planDuration?: number | undefined;
    includeShoppingList?: boolean | undefined;
    consolidateIngredients?: boolean | undefined;
}>;
type RecommendMealPlanInput = z.infer<typeof RecommendMealPlanInput>;
declare const MealPlanResponse: z.ZodObject<{
    mealPlan: z.ZodAny;
    shoppingList: z.ZodOptional<z.ZodAny>;
    statistics: z.ZodObject<{
        totalRecipes: z.ZodNumber;
        uniqueRecipes: z.ZodNumber;
        categoriesUsed: z.ZodArray<z.ZodString, "many">;
        averageCaloriesPerDay: z.ZodNumber;
        totalEstimatedCookTime: z.ZodNumber;
        budgetEstimate: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        totalRecipes: number;
        uniqueRecipes: number;
        categoriesUsed: string[];
        averageCaloriesPerDay: number;
        totalEstimatedCookTime: number;
        budgetEstimate: string;
    }, {
        totalRecipes: number;
        uniqueRecipes: number;
        categoriesUsed: string[];
        averageCaloriesPerDay: number;
        totalEstimatedCookTime: number;
        budgetEstimate: string;
    }>;
    recommendations: z.ZodObject<{
        cookingTips: z.ZodArray<z.ZodString, "many">;
        prepAdvice: z.ZodArray<z.ZodString, "many">;
        substitutions: z.ZodArray<z.ZodString, "many">;
        timeManagement: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        cookingTips: string[];
        prepAdvice: string[];
        substitutions: string[];
        timeManagement: string[];
    }, {
        cookingTips: string[];
        prepAdvice: string[];
        substitutions: string[];
        timeManagement: string[];
    }>;
}, "strip", z.ZodTypeAny, {
    statistics: {
        totalRecipes: number;
        uniqueRecipes: number;
        categoriesUsed: string[];
        averageCaloriesPerDay: number;
        totalEstimatedCookTime: number;
        budgetEstimate: string;
    };
    recommendations: {
        cookingTips: string[];
        prepAdvice: string[];
        substitutions: string[];
        timeManagement: string[];
    };
    mealPlan?: any;
    shoppingList?: any;
}, {
    statistics: {
        totalRecipes: number;
        uniqueRecipes: number;
        categoriesUsed: string[];
        averageCaloriesPerDay: number;
        totalEstimatedCookTime: number;
        budgetEstimate: string;
    };
    recommendations: {
        cookingTips: string[];
        prepAdvice: string[];
        substitutions: string[];
        timeManagement: string[];
    };
    mealPlan?: any;
    shoppingList?: any;
}>;
/**
 * Tool definition for recommending meal plans
 */
export declare const recommendMealPlanTool: Tool;
/**
 * Handler for recommend_meal_plan tool
 */
export declare function handleRecommendMealPlan(input: RecommendMealPlanInput): Promise<MCPResponse<z.infer<typeof MealPlanResponse>>>;
export {};
//# sourceMappingURL=recommendMealPlan.d.ts.map