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

type AppRoutes = "/[locale]" | "/[locale]/admin" | "/[locale]/admin/populate-circuits" | "/[locale]/agadir" | "/[locale]/autres-services" | "/[locale]/badge/[badgeCode]" | "/[locale]/cart" | "/[locale]/cart/carte" | "/[locale]/chambre-et-suites" | "/[locale]/checkout" | "/[locale]/circuits" | "/[locale]/contact" | "/[locale]/excursion/[slug]" | "/[locale]/favoris" | "/[locale]/le-restaurant" | "/[locale]/le-riad" | "/[locale]/marrakech" | "/[locale]/mes-reservations" | "/[locale]/mon-compte" | "/[locale]/nos-excursions" | "/[locale]/order-confirmation/[orderNumber]" | "/[locale]/payment/[orderNumber]" | "/[locale]/qui-sommes-nous" | "/[locale]/reservation" | "/[locale]/sign-in/[[...sign-in]]" | "/[locale]/sign-up/[[...sign-up]]" | "/[locale]/staff" | "/[locale]/staff/history" | "/[locale]/staff/scanner" | "/[locale]/taghazout" | "/[locale]/terms"
type AppRouteHandlerRoutes = "/[locale]/manifest.json" | "/api/admin/analytics" | "/api/admin/excursion-settings" | "/api/admin/excursion-settings/[section]" | "/api/admin/excursions" | "/api/admin/excursions/[id]" | "/api/admin/excursions/bulk-create" | "/api/admin/excursions/bulk-update-circuits" | "/api/admin/excursions/cleanup-non-circuits" | "/api/admin/excursions/debug" | "/api/admin/excursions/delete-non-circuits" | "/api/admin/excursions/fix-images" | "/api/admin/excursions/update-schedule" | "/api/admin/orders" | "/api/admin/orders/[id]" | "/api/admin/orders/[id]/send-confirmation" | "/api/admin/services" | "/api/admin/services/[id]" | "/api/admin/sync-users" | "/api/admin/upload-image" | "/api/admin/users" | "/api/admin/users/[id]" | "/api/admin/users/[id]/assign-role" | "/api/badges" | "/api/badges/[badgeCode]" | "/api/badges/[badgeCode]/revoke" | "/api/badges/scan" | "/api/badges/scan-history" | "/api/capacity" | "/api/capacity/[id]" | "/api/capacity/bulk" | "/api/capacity/calendar/[excursion_id]" | "/api/capacity/check" | "/api/capacity/excursion/[excursion_id]" | "/api/chat" | "/api/contact" | "/api/debug-excursion" | "/api/debug-user" | "/api/excursion-settings" | "/api/excursions" | "/api/excursions/[slug]" | "/api/fix-admin" | "/api/invoices/download/[orderNumber]" | "/api/invoices/email/[orderNumber]" | "/api/notifications" | "/api/notifications/[id]" | "/api/notifications/mark-all-read" | "/api/orders" | "/api/orders/[id]" | "/api/orders/[id]/send-confirmation" | "/api/orders/number/[order_number]" | "/api/orders/payment/[order_number]" | "/api/payment/cmi/status" | "/api/payments/callback" | "/api/payments/fail" | "/api/payments/initiate" | "/api/payments/success" | "/api/reservations/[id]" | "/api/reservations/user" | "/api/reservations/user/[clerk_id]" | "/api/reviews" | "/api/reviews/[id]" | "/api/reviews/excursion/[slug]" | "/api/reviews/user/[clerk_id]" | "/api/sms/logs/order/[order_id]" | "/api/sms/preferences/[user_id]" | "/api/sms/scheduled" | "/api/sms/send" | "/api/sms/webhook" | "/api/users" | "/api/users/[clerk_id]" | "/api/webhooks/clerk" | "/api/whatsapp/logs" | "/api/whatsapp/logs/order/[order_id]" | "/api/whatsapp/preferences/[user_id]" | "/api/whatsapp/scheduled" | "/api/whatsapp/send" | "/api/whatsapp/webhooks" | "/api/wishlists" | "/api/wishlists/[id]" | "/api/wishlists/check" | "/api/wishlists/user/[clerk_id]" | "/api/wishlists/user/[clerk_id]/excursion/[excursion_id]"
type PageRoutes = never
type LayoutRoutes = "/[locale]"
type RedirectRoutes = never
type RewriteRoutes = "/api/[[...path]]"
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes


interface ParamMap {
  "/[locale]": { "locale": string; }
  "/[locale]/admin": { "locale": string; }
  "/[locale]/admin/populate-circuits": { "locale": string; }
  "/[locale]/agadir": { "locale": string; }
  "/[locale]/autres-services": { "locale": string; }
  "/[locale]/badge/[badgeCode]": { "locale": string; "badgeCode": string; }
  "/[locale]/cart": { "locale": string; }
  "/[locale]/cart/carte": { "locale": string; }
  "/[locale]/chambre-et-suites": { "locale": string; }
  "/[locale]/checkout": { "locale": string; }
  "/[locale]/circuits": { "locale": string; }
  "/[locale]/contact": { "locale": string; }
  "/[locale]/excursion/[slug]": { "locale": string; "slug": string; }
  "/[locale]/favoris": { "locale": string; }
  "/[locale]/le-restaurant": { "locale": string; }
  "/[locale]/le-riad": { "locale": string; }
  "/[locale]/manifest.json": { "locale": string; }
  "/[locale]/marrakech": { "locale": string; }
  "/[locale]/mes-reservations": { "locale": string; }
  "/[locale]/mon-compte": { "locale": string; }
  "/[locale]/nos-excursions": { "locale": string; }
  "/[locale]/order-confirmation/[orderNumber]": { "locale": string; "orderNumber": string; }
  "/[locale]/payment/[orderNumber]": { "locale": string; "orderNumber": string; }
  "/[locale]/qui-sommes-nous": { "locale": string; }
  "/[locale]/reservation": { "locale": string; }
  "/[locale]/sign-in/[[...sign-in]]": { "locale": string; "sign-in"?: string[]; }
  "/[locale]/sign-up/[[...sign-up]]": { "locale": string; "sign-up"?: string[]; }
  "/[locale]/staff": { "locale": string; }
  "/[locale]/staff/history": { "locale": string; }
  "/[locale]/staff/scanner": { "locale": string; }
  "/[locale]/taghazout": { "locale": string; }
  "/[locale]/terms": { "locale": string; }
  "/api/[[...path]]": { "path"?: string[]; }
  "/api/admin/analytics": {}
  "/api/admin/excursion-settings": {}
  "/api/admin/excursion-settings/[section]": { "section": string; }
  "/api/admin/excursions": {}
  "/api/admin/excursions/[id]": { "id": string; }
  "/api/admin/excursions/bulk-create": {}
  "/api/admin/excursions/bulk-update-circuits": {}
  "/api/admin/excursions/cleanup-non-circuits": {}
  "/api/admin/excursions/debug": {}
  "/api/admin/excursions/delete-non-circuits": {}
  "/api/admin/excursions/fix-images": {}
  "/api/admin/excursions/update-schedule": {}
  "/api/admin/orders": {}
  "/api/admin/orders/[id]": { "id": string; }
  "/api/admin/orders/[id]/send-confirmation": { "id": string; }
  "/api/admin/services": {}
  "/api/admin/services/[id]": { "id": string; }
  "/api/admin/sync-users": {}
  "/api/admin/upload-image": {}
  "/api/admin/users": {}
  "/api/admin/users/[id]": { "id": string; }
  "/api/admin/users/[id]/assign-role": { "id": string; }
  "/api/badges": {}
  "/api/badges/[badgeCode]": { "badgeCode": string; }
  "/api/badges/[badgeCode]/revoke": { "badgeCode": string; }
  "/api/badges/scan": {}
  "/api/badges/scan-history": {}
  "/api/capacity": {}
  "/api/capacity/[id]": { "id": string; }
  "/api/capacity/bulk": {}
  "/api/capacity/calendar/[excursion_id]": { "excursion_id": string; }
  "/api/capacity/check": {}
  "/api/capacity/excursion/[excursion_id]": { "excursion_id": string; }
  "/api/chat": {}
  "/api/contact": {}
  "/api/debug-excursion": {}
  "/api/debug-user": {}
  "/api/excursion-settings": {}
  "/api/excursions": {}
  "/api/excursions/[slug]": { "slug": string; }
  "/api/fix-admin": {}
  "/api/invoices/download/[orderNumber]": { "orderNumber": string; }
  "/api/invoices/email/[orderNumber]": { "orderNumber": string; }
  "/api/notifications": {}
  "/api/notifications/[id]": { "id": string; }
  "/api/notifications/mark-all-read": {}
  "/api/orders": {}
  "/api/orders/[id]": { "id": string; }
  "/api/orders/[id]/send-confirmation": { "id": string; }
  "/api/orders/number/[order_number]": { "order_number": string; }
  "/api/orders/payment/[order_number]": { "order_number": string; }
  "/api/payment/cmi/status": {}
  "/api/payments/callback": {}
  "/api/payments/fail": {}
  "/api/payments/initiate": {}
  "/api/payments/success": {}
  "/api/reservations/[id]": { "id": string; }
  "/api/reservations/user": {}
  "/api/reservations/user/[clerk_id]": { "clerk_id": string; }
  "/api/reviews": {}
  "/api/reviews/[id]": { "id": string; }
  "/api/reviews/excursion/[slug]": { "slug": string; }
  "/api/reviews/user/[clerk_id]": { "clerk_id": string; }
  "/api/sms/logs/order/[order_id]": { "order_id": string; }
  "/api/sms/preferences/[user_id]": { "user_id": string; }
  "/api/sms/scheduled": {}
  "/api/sms/send": {}
  "/api/sms/webhook": {}
  "/api/users": {}
  "/api/users/[clerk_id]": { "clerk_id": string; }
  "/api/webhooks/clerk": {}
  "/api/whatsapp/logs": {}
  "/api/whatsapp/logs/order/[order_id]": { "order_id": string; }
  "/api/whatsapp/preferences/[user_id]": { "user_id": string; }
  "/api/whatsapp/scheduled": {}
  "/api/whatsapp/send": {}
  "/api/whatsapp/webhooks": {}
  "/api/wishlists": {}
  "/api/wishlists/[id]": { "id": string; }
  "/api/wishlists/check": {}
  "/api/wishlists/user/[clerk_id]": { "clerk_id": string; }
  "/api/wishlists/user/[clerk_id]/excursion/[excursion_id]": { "clerk_id": string; "excursion_id": string; }
}


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

interface LayoutSlotMap {
  "/[locale]": 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]>
  }
}
