/** * MC Version Upgrade Assistant * * Helps users safely upgrade their Minecraft server version by * analyzing plugin compatibility and providing a migration plan. * * @since v1.66.0 */ import { type CompatibilityStatus, type McVersion } from './compatibility-checker.js'; import type { PluginHealthMetadata } from './health-types.js'; /** * Plugin upgrade status */ export type PluginUpgradeStatus = 'ready' | 'update_required' | 'uncertain' | 'incompatible'; /** * Plugin upgrade info */ export interface PluginUpgradeInfo { /** Plugin name */ pluginName: string; /** Plugin ID */ pluginId: string; /** Current version */ currentVersion: string; /** Upgrade status */ status: PluginUpgradeStatus; /** Current MC compatibility */ currentCompatibility: CompatibilityStatus; /** Target MC compatibility */ targetCompatibility: CompatibilityStatus; /** Required update version (if update_required) */ requiredVersion?: string; /** Reason for status */ reason: string; /** Last update date */ lastUpdated?: number; /** Days since last update */ daysSinceUpdate?: number; } /** * Upgrade risk level */ export type UpgradeRiskLevel = 'low' | 'medium' | 'high' | 'critical'; /** * Upgrade analysis result */ export interface UpgradeAnalysis { /** Current MC version */ currentVersion: string; /** Target MC version */ targetVersion: string; /** Parsed current version */ parsedCurrent: McVersion | null; /** Parsed target version */ parsedTarget: McVersion | null; /** Whether upgrade is possible */ canUpgrade: boolean; /** Upgrade risk level */ riskLevel: UpgradeRiskLevel; /** Risk factors */ riskFactors: string[]; /** Plugins by status */ byStatus: { ready: PluginUpgradeInfo[]; updateRequired: PluginUpgradeInfo[]; uncertain: PluginUpgradeInfo[]; incompatible: PluginUpgradeInfo[]; }; /** Total plugins */ totalPlugins: number; /** Summary stats */ stats: { readyCount: number; updateRequiredCount: number; uncertainCount: number; incompatibleCount: number; readyPercentage: number; }; /** Recommended steps */ recommendedSteps: string[]; /** Estimated upgrade effort */ estimatedEffort: 'low' | 'medium' | 'high'; /** Analysis timestamp */ analyzedAt: number; } /** * Analyze a single plugin for MC version upgrade */ export declare function analyzePluginUpgrade(plugin: PluginHealthMetadata, currentMcVersion: string, targetMcVersion: string): PluginUpgradeInfo; /** * Calculate upgrade risk level */ export declare function calculateRiskLevel(stats: UpgradeAnalysis['stats'], incompatibleCount: number): UpgradeRiskLevel; /** * Generate risk factors */ export declare function generateRiskFactors(analysis: Pick): string[]; /** * Generate recommended upgrade steps */ export declare function generateRecommendedSteps(analysis: Pick): string[]; /** * Estimate upgrade effort */ export declare function estimateUpgradeEffort(stats: UpgradeAnalysis['stats']): 'low' | 'medium' | 'high'; /** * Analyze MC version upgrade for a set of plugins */ export declare function analyzeUpgrade(plugins: PluginHealthMetadata[], currentMcVersion: string, targetMcVersion: string): UpgradeAnalysis; /** * Get next recommended MC version to upgrade to */ export declare function getRecommendedTargetVersion(currentVersion: string): string[]; //# sourceMappingURL=upgrade-assistant.d.ts.map