import { PrismaService } from '../prisma/prisma.service'; import { CreateMealPlanEntryDto } from './dto/create-meal-plan-entry.dto'; export declare class MealPlanService { private readonly prisma; constructor(prisma: PrismaService); findByRange(userId: number, from: string, to: string): Promise<({ recipe: { name: string; id: number; imageUrl: string | null; servings: number | null; ingredients: { product: { name: string; id: number; canonicalName: string | null; } | null; quantity: import("@prisma/client/runtime/library").Decimal | null; unit: string | null; note: string | null; }[]; }; } & { id: number; createdAt: Date; updatedAt: Date; servings: number | null; userId: number; recipeId: number; date: Date; })[]>; upsert(userId: number, dto: CreateMealPlanEntryDto): Promise<{ recipe: { name: string; id: number; imageUrl: string | null; servings: number | null; ingredients: { product: { name: string; id: number; canonicalName: string | null; } | null; quantity: import("@prisma/client/runtime/library").Decimal | null; unit: string | null; note: string | null; }[]; }; } & { id: number; createdAt: Date; updatedAt: Date; servings: number | null; userId: number; recipeId: number; date: Date; }>; removeByDate(userId: number, date: string): Promise<{ id: number; createdAt: Date; updatedAt: Date; servings: number | null; userId: number; recipeId: number; date: Date; }>; private aggregateIngredients; shoppingList(userId: number, from: string, to: string): Promise<{ productId: number; name: string; quantity: number; unit: string; }[]>; inventoryCompare(userId: number, from: string, to: string): Promise<{ productId: number; name: string; required: number; unit: string; available: number; missing: number; status: "enough" | "missing" | "pantry"; }[]>; }