/** * Version Management Utility * * Provides centralized version management following best practices: * - Single source of truth (package.json) * - Semantic versioning support * - Build metadata integration * - Version comparison utilities */ /** * Version information interface */ export interface VersionInfo { /** Full version string (e.g., "2.7.0") */ version: string; /** Major version number */ major: number; /** Minor version number */ minor: number; /** Patch version number */ patch: number; /** Pre-release identifier (e.g., "beta.1") */ prerelease?: string; /** Build metadata (e.g., git commit hash) */ build?: string; /** Human-readable version string with metadata */ full: string; } /** * Package.json structure for version reading */ interface PackageJson { name: string; version: string; description?: string; } /** * Version Manager Class * Singleton pattern for consistent version management */ export declare class VersionManager { private static instance; private versionInfo; private packageJson; private isInitialized; private constructor(); /** * Get singleton instance */ static getInstance(): VersionManager; /** * Initialize version manager with async file loading * Call this early in application startup for optimal performance */ initialize(): Promise; /** * Get version information * Uses cached version if available, loads synchronously with fallback if needed */ getVersion(): VersionInfo; /** * Get package information * Uses cached package if available, loads synchronously with fallback if needed */ getPackageInfo(): PackageJson; /** * Load version synchronously — reads package.json from disk first, * falls back to the hardcoded constant only if the file isn't found * (e.g. inside a DXT bundle without package.json at ../../package.json). */ private loadVersionSync; /** * Load version from package data */ private loadVersionFromPackage; /** * Load package.json */ private loadPackageJson; /** * Parse semantic version string * Supports format: major.minor.patch[-prerelease][+build] */ private parseSemanticVersion; /** * Get build metadata (git commit hash, timestamp, etc.) */ private getBuildMetadata; /** * Format full version string with metadata */ private formatFullVersion; /** * Compare two version strings * Returns: -1 if v1 < v2, 0 if v1 = v2, 1 if v1 > v2 */ compareVersions(v1: string, v2: string): number; /** * Check if version satisfies a requirement */ satisfiesVersion(version: string, requirement: string): boolean; /** * Get user agent string for HTTP requests */ getUserAgent(): string; /** * Get version for display/logging */ getDisplayVersion(): string; /** * Check if running in development mode */ isDevelopment(): boolean; /** * Check if running a prerelease version */ isPrerelease(): boolean; /** * Get version badge URL for documentation */ getVersionBadgeUrl(): string; private getFallbackPackageInfo; } /** * Singleton instance export for convenience */ export declare const versionManager: VersionManager; /** * Quick access functions */ export declare function getVersion(): string; export declare function getFullVersion(): string; export declare function getUserAgent(): string; export declare function getDisplayVersion(): string; /** * Semantic version comparison */ export declare function isVersionGreaterThan(v1: string, v2: string): boolean; export declare function isVersionLessThan(v1: string, v2: string): boolean; export declare function isVersionEqual(v1: string, v2: string): boolean; /** * Version requirement checking */ export declare function satisfiesVersion(version: string, requirement: string): boolean; export {}; //# sourceMappingURL=version.d.ts.map