// This file is generated automatically by Next.js
// Do not edit this file manually

type AppRoutes = "/" | "/cart-empty" | "/checkout" | "/confirmation-code" | "/dish/[id]" | "/edit-profile" | "/forgot-password" | "/forgot-password-sent-email" | "/home" | "/my-favorite" | "/my-promocodes" | "/new-password" | "/offers" | "/onboarding" | "/order" | "/order-failed" | "/order-history" | "/order-success" | "/profile" | "/search" | "/shop-category/[category]" | "/shop/[category]" | "/sign-in" | "/sign-up" | "/verify-your-phone-number"
type PageRoutes = never
type LayoutRoutes = "/"
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes


interface ParamMap {
  "/": {}
  "/cart-empty": {}
  "/checkout": {}
  "/confirmation-code": {}
  "/dish/[id]": { "id": string; }
  "/edit-profile": {}
  "/forgot-password": {}
  "/forgot-password-sent-email": {}
  "/home": {}
  "/my-favorite": {}
  "/my-promocodes": {}
  "/new-password": {}
  "/offers": {}
  "/onboarding": {}
  "/order": {}
  "/order-failed": {}
  "/order-history": {}
  "/order-success": {}
  "/profile": {}
  "/search": {}
  "/shop-category/[category]": { "category": string; }
  "/shop/[category]": { "category": string; }
  "/sign-in": {}
  "/sign-up": {}
  "/verify-your-phone-number": {}
}


export type ParamsOf<Route extends Routes> = ParamMap[Route]

interface LayoutSlotMap {
  "/": never
}


export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap }

declare global {
  /**
   * Props for Next.js App Router page components
   * @example
   * ```tsx
   * export default function Page(props: PageProps<'/blog/[slug]'>) {
   *   const { slug } = await props.params
   *   return <div>Blog post: {slug}</div>
   * }
   * ```
   */
  interface PageProps<AppRoute extends AppRoutes> {
    params: Promise<ParamMap[AppRoute]>
    searchParams: Promise<Record<string, string | string[] | undefined>>
  }

  /**
   * Props for Next.js App Router layout components
   * @example
   * ```tsx
   * export default function Layout(props: LayoutProps<'/dashboard'>) {
   *   return <div>{props.children}</div>
   * }
   * ```
   */
  type LayoutProps<LayoutRoute extends LayoutRoutes> = {
    params: Promise<ParamMap[LayoutRoute]>
    children: React.ReactNode
  } & {
    [K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
  }
}
