// 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`
  | `/analyst/:exerciseId/emails/:threadId`
  | `/analyst/:exerciseId/learning-objectives`
  | `/analyst/:exerciseId/milestones`
  | `/analyst/:exerciseId/questionnaires`
  | `/analyst/:exerciseId/tools`
  | `/editor`
  | `/editor/create/activity-specification`
  | `/editor/create/activity-specification/:activityId`
  | `/editor/create/conclusion`
  | `/editor/create/emails`
  | `/editor/create/exercise-information`
  | `/editor/create/final-information`
  | `/editor/create/gitlab-settings`
  | `/editor/create/inject-specification`
  | `/editor/create/inject-specification/:injectId`
  | `/editor/create/injects`
  | `/editor/create/introduction`
  | `/editor/create/learning-objectives`
  | `/editor/create/other`
  | `/editor/create/save`
  | `/editor/create/tools`
  | `/editor/definitions`
  | `/editor/gitlab-settings`
  | `/exercise-panel`
  | `/exercise-panel/definition/:definitionId`
  | `/exercise-panel/exercise/:exerciseId`
  | `/graphiql`
  | `/instructor`
  | `/instructor/:exerciseId`
  | `/instructor/:exerciseId/:teamId`
  | `/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/email`
  | `/instructor/:exerciseId/:teamId/email/:tab`
  | `/instructor/:exerciseId/:teamId/email/:tab/:threadId`
  | `/instructor/:exerciseId/:teamId/file/:fileId`
  | `/instructor/:exerciseId/:teamId/learning-objectives`
  | `/instructor/:exerciseId/select`
  | `/settings`
  | `/staff`
  | `/trainee`
  | `/trainee/:exerciseId`
  | `/trainee/:exerciseId/:teamId`
  | `/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/email`
  | `/trainee/:exerciseId/:teamId/email/:tab`
  | `/trainee/:exerciseId/:teamId/email/:tab/:threadId`
  | `/trainee/:exerciseId/:teamId/file/:fileId`
  | `/users`
  | `/users/:userId`
  | `/voyager`

export type Params = {
  '/analyst/:exerciseId': { exerciseId: string }
  '/analyst/:exerciseId/:teamId/file/:fileId': { exerciseId: string; teamId: string; fileId: string }
  '/analyst/:exerciseId/emails': { exerciseId: string }
  '/analyst/:exerciseId/emails/:threadId': { exerciseId: string; threadId: string }
  '/analyst/:exerciseId/learning-objectives': { exerciseId: string }
  '/analyst/:exerciseId/milestones': { exerciseId: string }
  '/analyst/:exerciseId/questionnaires': { exerciseId: string }
  '/analyst/:exerciseId/tools': { exerciseId: string }
  '/editor/create/activity-specification/:activityId': { activityId: string }
  '/editor/create/inject-specification/:injectId': { injectId: string }
  '/exercise-panel/definition/:definitionId': { definitionId: string }
  '/exercise-panel/exercise/:exerciseId': { exerciseId: string }
  '/instructor/:exerciseId': { exerciseId: string }
  '/instructor/:exerciseId/:teamId': { exerciseId: string; teamId: 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/email': { exerciseId: string; teamId: string }
  '/instructor/:exerciseId/:teamId/email/:tab': { exerciseId: string; teamId: string; tab: string }
  '/instructor/:exerciseId/:teamId/email/:tab/:threadId': { exerciseId: string; teamId: string; tab: string; threadId: string }
  '/instructor/:exerciseId/:teamId/file/:fileId': { exerciseId: string; teamId: string; fileId: string }
  '/instructor/:exerciseId/:teamId/learning-objectives': { exerciseId: string; teamId: string }
  '/instructor/:exerciseId/select': { exerciseId: string }
  '/trainee/:exerciseId': { exerciseId: string }
  '/trainee/:exerciseId/:teamId': { exerciseId: string; teamId: 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/email': { exerciseId: string; teamId: string }
  '/trainee/:exerciseId/:teamId/email/:tab': { exerciseId: string; teamId: string; tab: string }
  '/trainee/:exerciseId/:teamId/email/:tab/:threadId': { exerciseId: string; teamId: string; tab: string; threadId: 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>()
