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

type AppRoutes = "/" | "/admin/campaign" | "/admin/dashboard" | "/admin/militants/create" | "/admin/militants/list" | "/admin/militants/map" | "/admin/militants/reviews" | "/admin/militants/structure" | "/admin/militants/upload-ine" | "/admin/reportes" | "/admin/strategy" | "/brigadist/campaign" | "/brigadist/dashboard" | "/brigadist/militants/create" | "/brigadist/militants/upload-ine" | "/leader/campaign" | "/leader/dashboard" | "/leader/militants/create" | "/leader/militants/list" | "/leader/militants/reviews" | "/leader/militants/structure" | "/leader/militants/upload-ine" | "/login"
type AppRouteHandlerRoutes = "/api/admin/campaign" | "/api/admin/campaign/history" | "/api/admin/campaign/stats" | "/api/admin/campaign/track" | "/api/admin/process-review" | "/api/admin/reviews" | "/api/admin/stats" | "/api/admin/stats/leader" | "/api/admin/strategy" | "/api/auth/login" | "/api/auth/logout" | "/api/brigadist/campaign" | "/api/brigadist/campaign/confirm" | "/api/brigadist/militants" | "/api/brigadist/review" | "/api/brigadist/update" | "/api/leader/campaign" | "/api/leader/campaign/check" | "/api/leader/campaign/confirm" | "/api/leader/militants" | "/api/leader/reviews" | "/api/leader/structure" | "/api/leader/suspend-brigadist" | "/api/maps" | "/api/militants/create" | "/api/militants/list" | "/api/militants/map" | "/api/militants/structure" | "/api/militants/toggle-status" | "/api/militants/upload-ine" | "/api/reports/full" | "/api/reports/goals" | "/api/reports/stats" | "/api/sections" | "/api/test-users" | "/api/users/create" | "/api/users/toggle-status"
type PageRoutes = never
type LayoutRoutes = "/"
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes


interface ParamMap {
  "/": {}
  "/admin/campaign": {}
  "/admin/dashboard": {}
  "/admin/militants/create": {}
  "/admin/militants/list": {}
  "/admin/militants/map": {}
  "/admin/militants/reviews": {}
  "/admin/militants/structure": {}
  "/admin/militants/upload-ine": {}
  "/admin/reportes": {}
  "/admin/strategy": {}
  "/api/admin/campaign": {}
  "/api/admin/campaign/history": {}
  "/api/admin/campaign/stats": {}
  "/api/admin/campaign/track": {}
  "/api/admin/process-review": {}
  "/api/admin/reviews": {}
  "/api/admin/stats": {}
  "/api/admin/stats/leader": {}
  "/api/admin/strategy": {}
  "/api/auth/login": {}
  "/api/auth/logout": {}
  "/api/brigadist/campaign": {}
  "/api/brigadist/campaign/confirm": {}
  "/api/brigadist/militants": {}
  "/api/brigadist/review": {}
  "/api/brigadist/update": {}
  "/api/leader/campaign": {}
  "/api/leader/campaign/check": {}
  "/api/leader/campaign/confirm": {}
  "/api/leader/militants": {}
  "/api/leader/reviews": {}
  "/api/leader/structure": {}
  "/api/leader/suspend-brigadist": {}
  "/api/maps": {}
  "/api/militants/create": {}
  "/api/militants/list": {}
  "/api/militants/map": {}
  "/api/militants/structure": {}
  "/api/militants/toggle-status": {}
  "/api/militants/upload-ine": {}
  "/api/reports/full": {}
  "/api/reports/goals": {}
  "/api/reports/stats": {}
  "/api/sections": {}
  "/api/test-users": {}
  "/api/users/create": {}
  "/api/users/toggle-status": {}
  "/brigadist/campaign": {}
  "/brigadist/dashboard": {}
  "/brigadist/militants/create": {}
  "/brigadist/militants/upload-ine": {}
  "/leader/campaign": {}
  "/leader/dashboard": {}
  "/leader/militants/create": {}
  "/leader/militants/list": {}
  "/leader/militants/reviews": {}
  "/leader/militants/structure": {}
  "/leader/militants/upload-ine": {}
  "/login": {}
}


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

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