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

type AppRoutes = "/" | "/about" | "/appointments" | "/be-seller" | "/blogs" | "/blogs/[id]" | "/bookings/[id]" | "/brands" | "/careers" | "/careers/[id]" | "/cart" | "/compare" | "/contact" | "/delivery-location" | "/digital" | "/faq" | "/for-business" | "/gift-cards" | "/group" | "/help" | "/home-2" | "/home-3" | "/home-4" | "/hotline" | "/liked-masters" | "/liked-products" | "/liked-shops" | "/login" | "/masters" | "/memberships" | "/news/[id]" | "/notifications" | "/order-refunds" | "/orders" | "/orders/[id]" | "/parcel-checkout" | "/parcels" | "/parcels/[id]" | "/payment/error" | "/privacy" | "/products" | "/products/[id]" | "/profile" | "/referral-terms" | "/referrals" | "/search" | "/search/date" | "/search/location" | "/search/service" | "/search/time" | "/services" | "/settings" | "/shops" | "/shops/[id]" | "/shops/[id]/booking" | "/shops/[id]/booking/date" | "/shops/[id]/booking/location" | "/shops/[id]/booking/note" | "/shops/[id]/booking/payment" | "/shops/[id]/booking/staff" | "/shops/[id]/booking/staff-select" | "/shops/[id]/booking/staff/[staffId]" | "/shops/[id]/gallery" | "/shops/[id]/gift-cards" | "/shops/[id]/memberships" | "/shops/[id]/memberships/[membershipId]" | "/sign-up" | "/sign-up-driver" | "/terms" | "/wallet"
type AppRouteHandlerRoutes = "/api/cache/settings" | "/api/map-reverse" | "/api/map-search" | "/api/revalidate" | "/api/sync"
type PageRoutes = never
type LayoutRoutes = "/" | "/cart" | "/shops/[id]" | "/shops/[id]/booking"
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes


interface ParamMap {
  "/": {}
  "/about": {}
  "/api/cache/settings": {}
  "/api/map-reverse": {}
  "/api/map-search": {}
  "/api/revalidate": {}
  "/api/sync": {}
  "/appointments": {}
  "/be-seller": {}
  "/blogs": {}
  "/blogs/[id]": { "id": string; }
  "/bookings/[id]": { "id": string; }
  "/brands": {}
  "/careers": {}
  "/careers/[id]": { "id": string; }
  "/cart": {}
  "/compare": {}
  "/contact": {}
  "/delivery-location": {}
  "/digital": {}
  "/faq": {}
  "/for-business": {}
  "/gift-cards": {}
  "/group": {}
  "/help": {}
  "/home-2": {}
  "/home-3": {}
  "/home-4": {}
  "/hotline": {}
  "/liked-masters": {}
  "/liked-products": {}
  "/liked-shops": {}
  "/login": {}
  "/masters": {}
  "/memberships": {}
  "/news/[id]": { "id": string; }
  "/notifications": {}
  "/order-refunds": {}
  "/orders": {}
  "/orders/[id]": { "id": string; }
  "/parcel-checkout": {}
  "/parcels": {}
  "/parcels/[id]": { "id": string; }
  "/payment/error": {}
  "/privacy": {}
  "/products": {}
  "/products/[id]": { "id": string; }
  "/profile": {}
  "/referral-terms": {}
  "/referrals": {}
  "/search": {}
  "/search/date": {}
  "/search/location": {}
  "/search/service": {}
  "/search/time": {}
  "/services": {}
  "/settings": {}
  "/shops": {}
  "/shops/[id]": { "id": string; }
  "/shops/[id]/booking": { "id": string; }
  "/shops/[id]/booking/date": { "id": string; }
  "/shops/[id]/booking/location": { "id": string; }
  "/shops/[id]/booking/note": { "id": string; }
  "/shops/[id]/booking/payment": { "id": string; }
  "/shops/[id]/booking/staff": { "id": string; }
  "/shops/[id]/booking/staff-select": { "id": string; }
  "/shops/[id]/booking/staff/[staffId]": { "id": string; "staffId": string; }
  "/shops/[id]/gallery": { "id": string; }
  "/shops/[id]/gift-cards": { "id": string; }
  "/shops/[id]/memberships": { "id": string; }
  "/shops/[id]/memberships/[membershipId]": { "id": string; "membershipId": string; }
  "/sign-up": {}
  "/sign-up-driver": {}
  "/terms": {}
  "/wallet": {}
}


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

interface LayoutSlotMap {
  "/": "detail"
  "/cart": never
  "/shops/[id]": never
  "/shops/[id]/booking": never
}


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

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
  }

  /**
   * Context for Next.js App Router route handlers
   * @example
   * ```tsx
   * export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) {
   *   const { id } = await context.params
   *   return Response.json({ id })
   * }
   * ```
   */
  interface RouteContext<AppRouteHandlerRoute extends AppRouteHandlerRoutes> {
    params: Promise<ParamMap[AppRouteHandlerRoute]>
  }
}
