import type { Router, NavigationGuardNext, RouteLocationNormalized } from '@deppon/deppon-router'; /** * 进度条接口(可选) */ export interface ProgressBar { start(): void; done(): void; } /** * 登录守卫配置选项 */ export interface AuthGuardOptions { /** 需要检测的 Cookie 键名数组 */ cookieKeys: string[]; /** 登录状态检查函数 */ checkLogin: (cookies: Record) => boolean; /** 未登录时的处理函数 */ onRequireLogin: () => void | Promise; /** 是否显示进度条 */ showProgress?: boolean; /** 进度条实例(如果 showProgress 为 true,需要提供) */ progressBar?: ProgressBar; /** 白名单路由路径(不需要登录检查的路由) */ whiteList?: string[]; /** 登录后的回调函数 */ onLoggedIn?: (cookies: Record) => void | Promise; /** 路由变化后的回调函数(用于 afterEach,如关闭进度条) */ onAfterEach?: () => void; /** 是否开启登录状态检查,默认开启 */ enableLoginCheck?: boolean; } /** * 创建登录守卫函数(用于 createDepponRouter 的 guards.beforeEach) * @param {AuthGuardOptions} options - 配置选项 * @returns {Object} 包含 beforeEach 和 afterEach 守卫函数的对象 */ export declare function createAuthGuard(options: AuthGuardOptions): { beforeEach: (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => void | Promise; afterEach?: (to: RouteLocationNormalized, from: RouteLocationNormalized) => void; }; /** * 直接为 Router 实例注册登录守卫(兼容旧用法) * @param {Object} options - 配置选项 * @param {Router} options.router - Vue Router 实例 * @param {AuthGuardOptions} options.guardOptions - 登录守卫配置选项 */ export declare function setupAuthGuard(options: { router: Router; guardOptions: AuthGuardOptions; }): void;