/**
 * 路由中间件类型定义
 */
import type { RouteLocation, NavigateOptions } from '../types';
/**
 * 路由中间件上下文
 */
export interface RouterMiddlewareContext {
    /**
     * 目标路由
     */
    to: RouteLocation;
    /**
     * 来源路由
     */
    from?: RouteLocation;
    /**
     * 导航选项
     */
    options?: NavigateOptions;
    /**
     * 中间件元数据
     */
    meta?: Record<string, unknown>;
}
/**
 * 路由中间件结果
 */
export type RouterMiddlewareResult = {
    /**
     * 允许继续导航
     */
    allow: true;
} | {
    /**
     * 阻止导航
     */
    allow: false;
    /**
     * 重定向路径（可选）
     */
    redirect?: string;
    /**
     * 阻止原因
     */
    reason?: string;
};
/**
 * 路由中间件函数
 */
export type RouterMiddleware = (context: RouterMiddlewareContext) => RouterMiddlewareResult | Promise<RouterMiddlewareResult>;
/**
 * 路由中间件配置
 */
export interface RouterMiddlewareConfig {
    /**
     * 中间件函数
     */
    middleware: RouterMiddleware;
    /**
     * 中间件名称
     */
    name?: string;
    /**
     * 优先级（数字越小优先级越高）
     * @default 100
     */
    priority?: number;
    /**
     * 是否启用
     * @default true
     */
    enabled?: boolean;
    /**
     * 条件函数（返回 true 时才执行中间件）
     */
    condition?: (context: RouterMiddlewareContext) => boolean;
}
/**
 * 路由生命周期钩子结果
 */
export type RouteLifecycleResult = void | string | false | Promise<void | string | false>;
//# sourceMappingURL=types.d.ts.map