/**
 * 路由版本管理器
 * 支持路由版本控制和迁移
 */
import type { RouteConfig } from '../types';
/**
 * 路由版本信息
 */
export interface RouteVersion {
    /**
     * 版本号（语义化版本，如 "1.0.0"）
     */
    version: string;
    /**
     * 路由配置
     */
    routes: RouteConfig[];
    /**
     * 创建时间
     */
    createdAt: number;
    /**
     * 描述
     */
    description?: string;
    /**
     * 是否兼容旧版本
     */
    compatible?: boolean;
}
/**
 * 版本迁移函数
 */
export type VersionMigration = (fromVersion: string, toVersion: string, routes: RouteConfig[]) => RouteConfig[] | Promise<RouteConfig[]>;
/**
 * 路由版本管理器配置
 */
export interface RouteVersionManagerConfig {
    /**
     * 当前版本
     */
    currentVersion: string;
    /**
     * 是否启用版本检查
     * @default true
     */
    enableVersionCheck?: boolean;
    /**
     * 是否启用自动迁移
     * @default false
     */
    enableAutoMigration?: boolean;
}
/**
 * 路由版本管理器
 */
export declare class RouteVersionManager {
    private versions;
    private migrations;
    private config;
    constructor(config: RouteVersionManagerConfig);
    /**
     * 注册路由版本
     *
     * @param version - 版本信息
     */
    registerVersion(version: RouteVersion): void;
    /**
     * 注册版本迁移函数
     *
     * @param fromVersion - 源版本
     * @param toVersion - 目标版本
     * @param migration - 迁移函数
     */
    registerMigration(fromVersion: string, toVersion: string, migration: VersionMigration): void;
    /**
     * 检查版本兼容性
     *
     * @param version - 要检查的版本
     * @returns 是否兼容
     */
    checkCompatibility(version: string): boolean;
    /**
     * 迁移路由配置
     *
     * @param fromVersion - 源版本
     * @param toVersion - 目标版本
     * @param routes - 路由配置
     * @returns 迁移后的路由配置
     */
    migrate(fromVersion: string, toVersion: string, routes: RouteConfig[]): Promise<RouteConfig[]>;
    /**
     * 逐步迁移（通过中间版本）
     */
    private migrateStepwise;
    /**
     * 获取版本信息
     *
     * @param version - 版本号
     * @returns 版本信息，如果不存在返回 undefined
     */
    getVersion(version: string): RouteVersion | undefined;
    /**
     * 获取所有版本
     *
     * @returns 版本信息数组
     */
    getAllVersions(): RouteVersion[];
    /**
     * 获取当前版本
     *
     * @returns 当前版本信息
     */
    getCurrentVersion(): RouteVersion | undefined;
    /**
     * 回滚到指定版本
     *
     * @param version - 目标版本
     * @param routes - 当前路由配置
     * @returns 回滚后的路由配置
     */
    rollback(version: string, routes: RouteConfig[]): Promise<RouteConfig[]>;
}
export declare function getRouteVersionManager(config?: RouteVersionManagerConfig): RouteVersionManager;
//# sourceMappingURL=RouteVersionManager.d.ts.map