// Generouted, changes to this file will be overriden
/* eslint-disable */

import { components, hooks, utils } from '@generouted/react-router/client'

export type Path =
  | `/`
  | `/analyst`
  | `/analyst/:exerciseId`
  | `/analyst/:exerciseId/:teamId/file/:fileId`
  | `/analyst/:exerciseId/emails/:tab`
  | `/analyst/:exerciseId/emails/:tab/:threadId`
  | `/analyst/:exerciseId/milestones`
  | `/analyst/:exerciseId/tools`
  | `/exercise-panel`
  | `/exercise-panel/definition/:definitionId`
  | `/exercise-panel/exercise/:exerciseId`
  | `/graphiql`
  | `/instructor`
  | `/instructor/:exerciseId/:teamId`
  | `/instructor/:exerciseId/:teamId/:channelId/email`
  | `/instructor/:exerciseId/:teamId/:channelId/email/:tab`
  | `/instructor/:exerciseId/:teamId/:channelId/email/:tab/:threadId`
  | `/instructor/:exerciseId/:teamId/:channelId/form`
  | `/instructor/:exerciseId/:teamId/:channelId/form/:actionLogId`
  | `/instructor/:exerciseId/:teamId/:channelId/info`
  | `/instructor/:exerciseId/:teamId/:channelId/info/:actionLogId`
  | `/instructor/:exerciseId/:teamId/:channelId/tool`
  | `/instructor/:exerciseId/:teamId/:channelId/tool/:actionLogId`
  | `/instructor/:exerciseId/:teamId/file/:fileId`
  | `/instructor/:exerciseId/:teamId/learning-objectives`
  | `/login`
  | `/settings`
  | `/trainee/:exerciseId/:teamId`
  | `/trainee/:exerciseId/:teamId/:channelId/email`
  | `/trainee/:exerciseId/:teamId/:channelId/email/:tab`
  | `/trainee/:exerciseId/:teamId/:channelId/email/:tab/:threadId`
  | `/trainee/:exerciseId/:teamId/:channelId/form`
  | `/trainee/:exerciseId/:teamId/:channelId/form/:actionLogId`
  | `/trainee/:exerciseId/:teamId/:channelId/info`
  | `/trainee/:exerciseId/:teamId/:channelId/info/:actionLogId`
  | `/trainee/:exerciseId/:teamId/:channelId/tool`
  | `/trainee/:exerciseId/:teamId/:channelId/tool/:actionLogId`
  | `/trainee/:exerciseId/:teamId/file/:fileId`
  | `/users`
  | `/users/:userId`

export type Params = {
  '/analyst/:exerciseId': { exerciseId: string }
  '/analyst/:exerciseId/:teamId/file/:fileId': { exerciseId: string; teamId: string; fileId: string }
  '/analyst/:exerciseId/emails/:tab': { exerciseId: string; tab: string }
  '/analyst/:exerciseId/emails/:tab/:threadId': { exerciseId: string; tab: string; threadId: string }
  '/analyst/:exerciseId/milestones': { exerciseId: string }
  '/analyst/:exerciseId/tools': { exerciseId: string }
  '/exercise-panel/definition/:definitionId': { definitionId: string }
  '/exercise-panel/exercise/:exerciseId': { exerciseId: string }
  '/instructor/:exerciseId/:teamId': { exerciseId: string; teamId: string }
  '/instructor/:exerciseId/:teamId/:channelId/email': { exerciseId: string; teamId: string; channelId: string }
  '/instructor/:exerciseId/:teamId/:channelId/email/:tab': { exerciseId: string; teamId: string; channelId: string; tab: string }
  '/instructor/:exerciseId/:teamId/:channelId/email/:tab/:threadId': { exerciseId: string; teamId: string; channelId: string; tab: string; threadId: string }
  '/instructor/:exerciseId/:teamId/:channelId/form': { exerciseId: string; teamId: string; channelId: string }
  '/instructor/:exerciseId/:teamId/:channelId/form/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/instructor/:exerciseId/:teamId/:channelId/info': { exerciseId: string; teamId: string; channelId: string }
  '/instructor/:exerciseId/:teamId/:channelId/info/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/instructor/:exerciseId/:teamId/:channelId/tool': { exerciseId: string; teamId: string; channelId: string }
  '/instructor/:exerciseId/:teamId/:channelId/tool/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/instructor/:exerciseId/:teamId/file/:fileId': { exerciseId: string; teamId: string; fileId: string }
  '/instructor/:exerciseId/:teamId/learning-objectives': { exerciseId: string; teamId: string }
  '/trainee/:exerciseId/:teamId': { exerciseId: string; teamId: string }
  '/trainee/:exerciseId/:teamId/:channelId/email': { exerciseId: string; teamId: string; channelId: string }
  '/trainee/:exerciseId/:teamId/:channelId/email/:tab': { exerciseId: string; teamId: string; channelId: string; tab: string }
  '/trainee/:exerciseId/:teamId/:channelId/email/:tab/:threadId': { exerciseId: string; teamId: string; channelId: string; tab: string; threadId: string }
  '/trainee/:exerciseId/:teamId/:channelId/form': { exerciseId: string; teamId: string; channelId: string }
  '/trainee/:exerciseId/:teamId/:channelId/form/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/trainee/:exerciseId/:teamId/:channelId/info': { exerciseId: string; teamId: string; channelId: string }
  '/trainee/:exerciseId/:teamId/:channelId/info/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/trainee/:exerciseId/:teamId/:channelId/tool': { exerciseId: string; teamId: string; channelId: string }
  '/trainee/:exerciseId/:teamId/:channelId/tool/:actionLogId': { exerciseId: string; teamId: string; channelId: string; actionLogId: string }
  '/trainee/:exerciseId/:teamId/file/:fileId': { exerciseId: string; teamId: string; fileId: string }
  '/users/:userId': { userId: string }
}

export type ModalPath = never

export const { Link, Navigate } = components<Path, Params>()
export const { useModals, useNavigate, useParams } = hooks<Path, Params, ModalPath>()
export const { redirect } = utils<Path, Params>()
