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

type AppRoutes = "/" | "/admin" | "/admin/activity" | "/admin/balances" | "/admin/disputes" | "/admin/disputes/[id]" | "/admin/inbox" | "/admin/orders" | "/admin/orders/[id]" | "/admin/payouts" | "/admin/returns" | "/admin/reviews" | "/admin/stores" | "/admin/stores/[id]" | "/c/[token]" | "/c/[token]/s/[statusToken]" | "/callback" | "/cart" | "/checkout" | "/invitations/accept" | "/items" | "/items/[id]" | "/login" | "/me/reviews" | "/notifications" | "/purchases" | "/purchases/[id]" | "/register" | "/s/[slug]" | "/s/[slug]/[page]" | "/seller" | "/seller/inbox" | "/seller/inbox/messages" | "/seller/listings" | "/seller/listings/[id]" | "/seller/listings/new" | "/seller/no-store" | "/seller/orders" | "/seller/orders/[id]" | "/seller/payouts" | "/seller/payroll" | "/seller/returns" | "/seller/reviews" | "/seller/schedule" | "/seller/settings" | "/seller/settings/notifications" | "/seller/settings/payments" | "/seller/settings/schedule" | "/seller/settings/shipping" | "/seller/settings/site" | "/seller/settings/store" | "/seller/statements" | "/seller/team" | "/seller/timesheets" | "/staff" | "/staff/clock" | "/staff/hours" | "/staff/schedule" | "/stores/[id]"
type PageRoutes = never
type LayoutRoutes = "/" | "/invitations/accept" | "/s/[slug]" | "/seller/settings"
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes


interface ParamMap {
  "/": {}
  "/admin": {}
  "/admin/activity": {}
  "/admin/balances": {}
  "/admin/disputes": {}
  "/admin/disputes/[id]": { "id": string; }
  "/admin/inbox": {}
  "/admin/orders": {}
  "/admin/orders/[id]": { "id": string; }
  "/admin/payouts": {}
  "/admin/returns": {}
  "/admin/reviews": {}
  "/admin/stores": {}
  "/admin/stores/[id]": { "id": string; }
  "/c/[token]": { "token": string; }
  "/c/[token]/s/[statusToken]": { "token": string; "statusToken": string; }
  "/callback": {}
  "/cart": {}
  "/checkout": {}
  "/invitations/accept": {}
  "/items": {}
  "/items/[id]": { "id": string; }
  "/login": {}
  "/me/reviews": {}
  "/notifications": {}
  "/purchases": {}
  "/purchases/[id]": { "id": string; }
  "/register": {}
  "/s/[slug]": { "slug": string; }
  "/s/[slug]/[page]": { "slug": string; "page": string; }
  "/seller": {}
  "/seller/inbox": {}
  "/seller/inbox/messages": {}
  "/seller/listings": {}
  "/seller/listings/[id]": { "id": string; }
  "/seller/listings/new": {}
  "/seller/no-store": {}
  "/seller/orders": {}
  "/seller/orders/[id]": { "id": string; }
  "/seller/payouts": {}
  "/seller/payroll": {}
  "/seller/returns": {}
  "/seller/reviews": {}
  "/seller/schedule": {}
  "/seller/settings": {}
  "/seller/settings/notifications": {}
  "/seller/settings/payments": {}
  "/seller/settings/schedule": {}
  "/seller/settings/shipping": {}
  "/seller/settings/site": {}
  "/seller/settings/store": {}
  "/seller/statements": {}
  "/seller/team": {}
  "/seller/timesheets": {}
  "/staff": {}
  "/staff/clock": {}
  "/staff/hours": {}
  "/staff/schedule": {}
  "/stores/[id]": { "id": string; }
}


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

interface LayoutSlotMap {
  "/": never
  "/invitations/accept": never
  "/s/[slug]": never
  "/seller/settings": 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
  }
}
