/**
 * Version Cache Manager
 * Handles reading/writing version cache to avoid excessive GitHub API calls.
 */
import { VersionCache, VersionListCache } from './types';
import type { CLIProxyBackend } from '../types';
/**
 * Get path to version cache file (backend-specific)
 */
export declare function getVersionCachePath(backend?: CLIProxyBackend): string;
/**
 * Get path to version pin file (backend-specific)
 */
export declare function getVersionPinPath(backend?: CLIProxyBackend): string;
/**
 * Read version cache if still valid (backend-specific)
 */
export declare function readVersionCache(backend?: CLIProxyBackend): VersionCache | null;
/**
 * Read version cache even if expired.
 * Used as a resilience fallback when GitHub release lookups fail.
 */
export declare function readStaleVersionCache(backend?: CLIProxyBackend): VersionCache | null;
/**
 * Write version to cache (backend-specific)
 */
export declare function writeVersionCache(version: string, backend?: CLIProxyBackend): void;
/**
 * Read installed version from .version file
 */
export declare function readInstalledVersion(binPath: string, fallbackVersion: string): string;
/**
 * Write installed version to .version file
 */
export declare function writeInstalledVersion(binPath: string, version: string): void;
/**
 * Get pinned version if one exists (backend-specific)
 */
export declare function getPinnedVersion(backend?: CLIProxyBackend): string | null;
/**
 * Save pinned version to persist user's explicit choice (backend-specific)
 */
export declare function savePinnedVersion(version: string, backend?: CLIProxyBackend): void;
/**
 * Clear pinned version (unpin) - backend-specific
 */
export declare function clearPinnedVersion(backend?: CLIProxyBackend): void;
/**
 * Check if a version is currently pinned (backend-specific)
 */
export declare function isVersionPinned(backend?: CLIProxyBackend): boolean;
/**
 * Migrate old shared version pin to backend-specific location.
 * Called once on first run after update.
 */
export declare function migrateVersionPin(backend: CLIProxyBackend): void;
/**
 * Get path to version list cache file (backend-specific)
 */
export declare function getVersionListCachePath(backend?: CLIProxyBackend): string;
/**
 * Read version list cache if still valid (backend-specific)
 */
export declare function readVersionListCache(backend?: CLIProxyBackend): VersionListCache | null;
/**
 * Read version list cache even if expired.
 * Used as a resilience fallback when GitHub release lookups fail.
 */
export declare function readStaleVersionListCache(backend?: CLIProxyBackend): VersionListCache | null;
/**
 * Write version list to cache (backend-specific)
 */
export declare function writeVersionListCache(cache: VersionListCache, backend?: CLIProxyBackend): void;
//# sourceMappingURL=version-cache.d.ts.map