/* eslint-disable */
/* prettier-ignore */
// Generated by elegant-router
// Read more: https://github.com/soybeanjs/elegant-router

declare module "@elegant-router/types" {
  type ElegantConstRoute = import('@elegant-router/vue').ElegantConstRoute;

  /**
   * route layout
   */
  export type RouteLayout = "base" | "blank";

  /**
   * route map
   */
  export type RouteMap = {
    "root": "/";
    "not-found": "/:pathMatch(.*)*";
    "exception": "/exception";
    "exception_403": "/exception/403";
    "exception_404": "/exception/404";
    "exception_500": "/exception/500";
    "document": "/document";
    "document_project": "/document/project";
    "document_project-link": "/document/project-link";
    "document_video": "/document/video";
    "document_vue": "/document/vue";
    "document_vite": "/document/vite";
    "document_unocss": "/document/unocss";
    "document_naive": "/document/naive";
    "document_pro-naive": "/document/pro-naive";
    "document_antd": "/document/antd";
    "document_alova": "/document/alova";
    "403": "/403";
    "404": "/404";
    "500": "/500";
    "device": "/device";
    "device_manage": "/device/manage";
    "device_terminal-manage": "/device/terminal-manage";
    "djk-manage": "/djk-manage";
    "djk-manage_activity": "/djk-manage/activity";
    "djk-manage_edit-activity": "/djk-manage/edit-activity";
    "djk-manage_normal-order": "/djk-manage/normal-order";
    "film-manage": "/film-manage";
    "film-manage_config": "/film-manage/config";
    "film-manage_film-list": "/film-manage/film-list";
    "film-manage_setprice": "/film-manage/setprice";
    "goods-center": "/goods-center";
    "goods-center_edit-health-goods": "/goods-center/edit-health-goods";
    "goods-center_health-goods": "/goods-center/health-goods";
    "goods-center_scenic-goods": "/goods-center/scenic-goods";
    "goods-center_store-goods": "/goods-center/store-goods";
    "goods-center_type-admin": "/goods-center/type-admin";
    "goods-center_virtual-goods": "/goods-center/virtual-goods";
    "government": "/government";
    "government_claim-records": "/government/claim-records";
    "government_government-list": "/government/government-list";
    "government_points": "/government/points";
    "government_user-list": "/government/user-list";
    "h5-manage": "/h5-manage";
    "h5-manage_channel-manage": "/h5-manage/channel-manage";
    "h5-manage_edit-channel": "/h5-manage/edit-channel";
    "h5-manage_user-list": "/h5-manage/user-list";
    "home": "/home";
    "iframe-page": "/iframe-page/:url";
    "jy-manage": "/jy-manage";
    "jy-manage_activity": "/jy-manage/activity";
    "login": "/login/:module(pwd-login|code-login|register|reset-pwd|bind-wechat)?";
    "manage": "/manage";
    "manage_config": "/manage/config";
    "manage_department": "/manage/department";
    "manage_dict": "/manage/dict";
    "manage_log": "/manage/log";
    "manage_menu": "/manage/menu";
    "manage_role": "/manage/role";
    "manage_schedule": "/manage/schedule";
    "manage_user": "/manage/user";
    "member-center": "/member-center";
    "member-center_edit-member-type": "/member-center/edit-member-type";
    "member-center_member-list": "/member-center/member-list";
    "member-center_member-order": "/member-center/member-order";
    "member-center_member-type": "/member-center/member-type";
    "operation": "/operation";
    "operation_accounting-strategy": "/operation/accounting-strategy";
    "operation_coupon": "/operation/coupon";
    "operation_coupon-issuance": "/operation/coupon-issuance";
    "operation_coupon-manage": "/operation/coupon-manage";
    "order-manage": "/order-manage";
    "order-manage_after-sales-order": "/order-manage/after-sales-order";
    "order-manage_after-sales-order-detail": "/order-manage/after-sales-order-detail";
    "order-manage_normal-order": "/order-manage/normal-order";
    "order-manage_order-detail": "/order-manage/order-detail";
    "order-manage_ponits-details": "/order-manage/ponits-details";
    "order-manage_recharge-records": "/order-manage/recharge-records";
    "tenant": "/tenant";
    "tenant_tenant": "/tenant/tenant";
    "tenant_tenant-change": "/tenant/tenant-change";
    "tenant_tenant-package": "/tenant/tenant-package";
    "user-center": "/user-center";
    "user-management": "/user-management";
    "user-management_user-list": "/user-management/user-list";
    "xsb-manage": "/xsb-manage";
    "xsb-manage_advertisement": "/xsb-manage/advertisement";
    "xsb-manage_fright-config": "/xsb-manage/fright-config";
    "xsb-manage_search": "/xsb-manage/search";
    "xsb-manage_store-info": "/xsb-manage/store-info";
  };

  /**
   * route key
   */
  export type RouteKey = keyof RouteMap;

  /**
   * route path
   */
  export type RoutePath = RouteMap[RouteKey];

  /**
   * custom route key
   */
  export type CustomRouteKey = Extract<
    RouteKey,
    | "root"
    | "not-found"
    | "exception"
    | "exception_403"
    | "exception_404"
    | "exception_500"
    | "document"
    | "document_project"
    | "document_project-link"
    | "document_video"
    | "document_vue"
    | "document_vite"
    | "document_unocss"
    | "document_naive"
    | "document_pro-naive"
    | "document_antd"
    | "document_alova"
  >;

  /**
   * the generated route key
   */
  export type GeneratedRouteKey = Exclude<RouteKey, CustomRouteKey>;

  /**
   * the first level route key, which contain the layout of the route
   */
  export type FirstLevelRouteKey = Extract<
    RouteKey,
    | "403"
    | "404"
    | "500"
    | "device"
    | "djk-manage"
    | "film-manage"
    | "goods-center"
    | "government"
    | "h5-manage"
    | "home"
    | "iframe-page"
    | "jy-manage"
    | "login"
    | "manage"
    | "member-center"
    | "operation"
    | "order-manage"
    | "tenant"
    | "user-center"
    | "user-management"
    | "xsb-manage"
  >;

  /**
   * the custom first level route key
   */
  export type CustomFirstLevelRouteKey = Extract<
    CustomRouteKey,
    | "root"
    | "not-found"
    | "exception"
    | "document"
  >;

  /**
   * the last level route key, which has the page file
   */
  export type LastLevelRouteKey = Extract<
    RouteKey,
    | "403"
    | "404"
    | "500"
    | "iframe-page"
    | "login"
    | "device_manage"
    | "device_terminal-manage"
    | "djk-manage_activity"
    | "djk-manage_edit-activity"
    | "djk-manage_normal-order"
    | "film-manage_config"
    | "film-manage_film-list"
    | "film-manage_setprice"
    | "goods-center_edit-health-goods"
    | "goods-center_health-goods"
    | "goods-center_scenic-goods"
    | "goods-center_store-goods"
    | "goods-center_type-admin"
    | "goods-center_virtual-goods"
    | "government_claim-records"
    | "government_government-list"
    | "government_points"
    | "government_user-list"
    | "h5-manage_channel-manage"
    | "h5-manage_edit-channel"
    | "h5-manage_user-list"
    | "home"
    | "jy-manage_activity"
    | "manage_config"
    | "manage_department"
    | "manage_dict"
    | "manage_log"
    | "manage_menu"
    | "manage_role"
    | "manage_schedule"
    | "manage_user"
    | "member-center_edit-member-type"
    | "member-center_member-list"
    | "member-center_member-order"
    | "member-center_member-type"
    | "operation_accounting-strategy"
    | "operation_coupon-issuance"
    | "operation_coupon-manage"
    | "operation_coupon"
    | "order-manage_after-sales-order-detail"
    | "order-manage_after-sales-order"
    | "order-manage_normal-order"
    | "order-manage_order-detail"
    | "order-manage_ponits-details"
    | "order-manage_recharge-records"
    | "tenant_tenant-change"
    | "tenant_tenant-package"
    | "tenant_tenant"
    | "user-center"
    | "user-management_user-list"
    | "xsb-manage_advertisement"
    | "xsb-manage_fright-config"
    | "xsb-manage_search"
    | "xsb-manage_store-info"
  >;

  /**
   * the custom last level route key
   */
  export type CustomLastLevelRouteKey = Extract<
    CustomRouteKey,
    | "root"
    | "not-found"
    | "exception_403"
    | "exception_404"
    | "exception_500"
    | "document_project"
    | "document_project-link"
    | "document_video"
    | "document_vue"
    | "document_vite"
    | "document_unocss"
    | "document_naive"
    | "document_pro-naive"
    | "document_antd"
    | "document_alova"
  >;

  /**
   * the single level route key
   */
  export type SingleLevelRouteKey = FirstLevelRouteKey & LastLevelRouteKey;

  /**
   * the custom single level route key
   */
  export type CustomSingleLevelRouteKey = CustomFirstLevelRouteKey & CustomLastLevelRouteKey;

  /**
   * the first level route key, but not the single level
  */
  export type FirstLevelRouteNotSingleKey = Exclude<FirstLevelRouteKey, SingleLevelRouteKey>;

  /**
   * the custom first level route key, but not the single level
   */
  export type CustomFirstLevelRouteNotSingleKey = Exclude<CustomFirstLevelRouteKey, CustomSingleLevelRouteKey>;

  /**
   * the center level route key
   */
  export type CenterLevelRouteKey = Exclude<GeneratedRouteKey, FirstLevelRouteKey | LastLevelRouteKey>;

  /**
   * the custom center level route key
   */
  export type CustomCenterLevelRouteKey = Exclude<CustomRouteKey, CustomFirstLevelRouteKey | CustomLastLevelRouteKey>;

  /**
   * the center level route key
   */
  type GetChildRouteKey<K extends RouteKey, T extends RouteKey = RouteKey> = T extends `${K}_${infer R}`
    ? R extends `${string}_${string}`
      ? never
      : T
    : never;

  /**
   * the single level route
   */
  type SingleLevelRoute<K extends SingleLevelRouteKey = SingleLevelRouteKey> = K extends string
    ? Omit<ElegantConstRoute, 'children'> & {
        name: K;
        path: RouteMap[K];
        component: `layout.${RouteLayout}$view.${K}`;
      }
    : never;

  /**
   * the last level route
   */
  type LastLevelRoute<K extends GeneratedRouteKey> = K extends LastLevelRouteKey
    ? Omit<ElegantConstRoute, 'children'> & {
        name: K;
        path: RouteMap[K];
        component: `view.${K}`;
      }
    : never;
  
  /**
   * the center level route
   */
  type CenterLevelRoute<K extends GeneratedRouteKey> = K extends CenterLevelRouteKey
    ? Omit<ElegantConstRoute, 'component'> & {
        name: K;
        path: RouteMap[K];
        children: (CenterLevelRoute<GetChildRouteKey<K>> | LastLevelRoute<GetChildRouteKey<K>>)[];
      }
    : never;

  /**
   * the multi level route
   */
  type MultiLevelRoute<K extends FirstLevelRouteNotSingleKey = FirstLevelRouteNotSingleKey> = K extends string
    ? ElegantConstRoute & {
        name: K;
        path: RouteMap[K];
        component: `layout.${RouteLayout}`;
        children: (CenterLevelRoute<GetChildRouteKey<K>> | LastLevelRoute<GetChildRouteKey<K>>)[];
      }
    : never;
  
  /**
   * the custom first level route
   */
  type CustomSingleLevelRoute<K extends CustomFirstLevelRouteKey = CustomFirstLevelRouteKey> = K extends string
    ? Omit<ElegantConstRoute, 'children'> & {
        name: K;
        path: RouteMap[K];
        component?: `layout.${RouteLayout}$view.${LastLevelRouteKey}`;
      }
    : never;

  /**
   * the custom last level route
   */
  type CustomLastLevelRoute<K extends CustomRouteKey> = K extends CustomLastLevelRouteKey
    ? Omit<ElegantConstRoute, 'children'> & {
        name: K;
        path: RouteMap[K];
        component?: `view.${LastLevelRouteKey}`;
      }
    : never;

  /**
   * the custom center level route
   */
  type CustomCenterLevelRoute<K extends CustomRouteKey> = K extends CustomCenterLevelRouteKey
    ? Omit<ElegantConstRoute, 'component'> & {
        name: K;
        path: RouteMap[K];
        children: (CustomCenterLevelRoute<GetChildRouteKey<K>> | CustomLastLevelRoute<GetChildRouteKey<K>>)[];
      }
    : never;

  /**
   * the custom multi level route
   */
  type CustomMultiLevelRoute<K extends CustomFirstLevelRouteNotSingleKey = CustomFirstLevelRouteNotSingleKey> =
    K extends string
      ? ElegantConstRoute & {
          name: K;
          path: RouteMap[K];
          component: `layout.${RouteLayout}`;
          children: (CustomCenterLevelRoute<GetChildRouteKey<K>> | CustomLastLevelRoute<GetChildRouteKey<K>>)[];
        }
      : never;

  /**
   * the custom route
   */
  type CustomRoute = CustomSingleLevelRoute | CustomMultiLevelRoute;

  /**
   * the generated route
   */
  type GeneratedRoute = SingleLevelRoute | MultiLevelRoute;

  /**
   * the elegant route
   */
  type ElegantRoute = GeneratedRoute | CustomRoute;
}
