/**
 * VersionChecker - CLI Version Update Notification Service
 *
 * Checks if the current CLI version is outdated and warns users
 * when a newer version is available from npm registry.
 */
import { type IHttpResponse } from '../../tools/http/Http';
interface VersionCheckResult {
    currentVersion: string;
    latestVersion: string;
    isOutdated: boolean;
    updateAvailable: boolean;
}
interface VersionCheckConfig {
    enabled: boolean;
    checkInterval: number;
    skipVersionCheck: boolean;
}
export declare const VersionChecker: Readonly<{
    /**
     * Resolve the nearest package.json from a starting directory.
     */
    findNearestPackageJson(startDir: string): string | null;
    /**
     * Get current version from package.json
     */
    getCurrentVersion(): string;
    /**
     * Get version check configuration
     */
    getConfig(): VersionCheckConfig;
    /**
     * Check if version check should be performed
     */
    shouldCheckVersion(): boolean;
    /**
     * Fetch cached version if available and fresh
     */
    getCachedVersion(checkInterval: number): string | null;
    /**
     * Cache the latest version and timestamp
     */
    cacheLatestVersion(version: string): void;
    /**
     * Fetch latest version from npm registry
     */
    fetchLatestVersion(): Promise<string>;
    /**
     * Make request to npm registry
     */
    fetchFromNpmRegistry(): Promise<IHttpResponse>;
    /**
     * Handle HTTP errors from npm registry
     */
    handleHttpError(): string;
    /**
     * Extract version from npm registry response
     */
    extractVersionFromResponse(data: unknown): string;
    /**
     * Check if response data is valid object
     */
    isValidResponseData(data: unknown): data is Record<string, unknown>;
    /**
     * Extract version from dist-tags
     */
    getVersionFromDistTags(dataRecord: Record<string, unknown>): string | null;
    /**
     * Extract version from version field
     */
    getVersionFromField(dataRecord: Record<string, unknown>): string | null;
    /**
     * Compare versions using semver-like comparison
     */
    compareVersions(current: string, latest: string): number;
    /**
     * Perform version check and return result
     */
    checkVersion(): Promise<VersionCheckResult | null>;
    /**
     * Display update notification to user
     */
    displayUpdateNotification(result: VersionCheckResult): void;
    /**
     * Run version check and display notification if needed
     */
    runVersionCheck(): Promise<void>;
}>;
export {};
//# sourceMappingURL=VersionChecker.d.ts.map