declare namespace PageRoute {
  /**
   * the root route key
   * @translate 根路由
   */
  type RootRouteKey = 'root';

  /**
   * the not found route, which catch the invalid route path
   * @translate 未找到路由(捕获无效路径的路由)
   */
  type NotFoundRouteKey = 'not-found';

  /**
   * the route key
   * @translate 页面路由
   */
  type RouteKey =
    | '403'
    | '404'
    | '500'
    | 'login'
    | 'not-found'
    | 'about'
    | 'archives'
    | 'archives_attendance'
    | 'archives_other'
    | 'archives_scores'
    | 'archives_students'
    | 'archives_students_component'
    | 'auth-demo'
    | 'auth-demo_permission'
    | 'auth-demo_super'
    | 'component'
    | 'component_button'
    | 'component_card'
    | 'component_table'
    | 'crud'
    | 'crud_demo'
    | 'crud_doc'
    | 'crud_header'
    | 'crud_header_group'
    | 'crud_source'
    | 'dashboard'
    | 'dashboard_analysis'
    | 'dashboard_workbench'
    | 'document'
    | 'document_naive'
    | 'document_project-link'
    | 'document_project'
    | 'document_vite'
    | 'document_vue'
    | 'exception'
    | 'exception_403'
    | 'exception_404'
    | 'exception_500'
    | 'function'
    | 'function_tab-detail'
    | 'function_tab-multi-detail'
    | 'function_tab'
    | 'lesson'
    | 'lesson_calendar'
    | 'lesson_checkin'
    | 'lesson_classroom'
    | 'lesson_group'
    | 'lesson_schedule'
    | 'lesson_score'
    | 'lesson_student'
    | 'management'
    | 'management_attendance'
    | 'management_auth'
    | 'management_role'
    | 'management_route'
    | 'management_sort'
    | 'management_student'
    | 'management_user'
    | 'multi-menu'
    | 'multi-menu_first'
    | 'multi-menu_first_second-new'
    | 'multi-menu_first_second-new_third'
    | 'multi-menu_first_second'
    | 'plugin'
    | 'plugin_charts'
    | 'plugin_charts_antv'
    | 'plugin_charts_echarts'
    | 'plugin_copy'
    | 'plugin_editor'
    | 'plugin_editor_markdown'
    | 'plugin_editor_quill'
    | 'plugin_icon'
    | 'plugin_map'
    | 'plugin_print'
    | 'plugin_swiper'
    | 'plugin_video';

  /**
   * last degree route key, which has the page file
   * @translate 最后一级路由(该级路有对应的页面文件)
   */
  type LastDegreeRouteKey = Extract<
    RouteKey,
    | '403'
    | '404'
    | '500'
    | 'login'
    | 'not-found'
    | 'about'
    | 'archives_attendance'
    | 'archives_other'
    | 'archives_scores'
    | 'archives_students_component'
    | 'archives_students'
    | 'auth-demo_permission'
    | 'auth-demo_super'
    | 'component_button'
    | 'component_card'
    | 'component_table'
    | 'crud_demo'
    | 'crud_doc'
    | 'crud_header_group'
    | 'crud_source'
    | 'dashboard_analysis'
    | 'dashboard_workbench'
    | 'document_naive'
    | 'document_project-link'
    | 'document_project'
    | 'document_vite'
    | 'document_vue'
    | 'exception_403'
    | 'exception_404'
    | 'exception_500'
    | 'function_tab-detail'
    | 'function_tab-multi-detail'
    | 'function_tab'
    | 'lesson_calendar'
    | 'lesson_checkin'
    | 'lesson_classroom'
    | 'lesson_group'
    | 'lesson_schedule'
    | 'lesson_score'
    | 'lesson_student'
    | 'management_attendance'
    | 'management_auth'
    | 'management_role'
    | 'management_route'
    | 'management_sort'
    | 'management_student'
    | 'management_user'
    | 'multi-menu_first_second-new_third'
    | 'multi-menu_first_second'
    | 'plugin_charts_antv'
    | 'plugin_charts_echarts'
    | 'plugin_copy'
    | 'plugin_editor_markdown'
    | 'plugin_editor_quill'
    | 'plugin_icon'
    | 'plugin_map'
    | 'plugin_print'
    | 'plugin_swiper'
    | 'plugin_video'
  >;
}
