/** * Project validation caching - ported from lib/validation/doctor-project-cache.sh * * Caches validation results per project with TTL-based invalidation * and file hash comparison for cache freshness. * * @task T4525 * @epic T4454 */ export interface SchemaVersions { todo?: string; config?: string; archive?: string; log?: string; } export interface FileHashes { 'tasks.db'?: string; 'config.json'?: string; } export interface ProjectCacheEntry { path: string; lastValidated: string; validationStatus: 'passed' | 'failed' | 'warning'; schemaVersions: SchemaVersions; fileHashes: FileHashes; issues: string[]; ttl: number; } export interface DoctorProjectCache { version: string; lastUpdated: string; projects: Record; } export declare const CACHE_VERSION = "1.0.0"; export declare const CACHE_TTL_SECONDS = 300; /** * Get cache file path. * @task T4525 */ export declare function getCacheFilePath(cleoHome?: string): string; /** * Initialize empty cache file. * @task T4525 */ export declare function initCacheFile(cacheFile: string): DoctorProjectCache; /** * Load cache file or return null if missing/invalid. * @task T4525 */ export declare function loadCache(cacheFile: string): DoctorProjectCache | null; /** * Get file hash for cache invalidation. * @task T4525 */ export declare function getFileHash(filePath: string): string; /** * Check if project validation is cached and valid. * Returns the cache entry if valid, null if cache miss. * @task T4525 */ export declare function getCachedValidation(projectHash: string, projectPath: string, cacheFile?: string): ProjectCacheEntry | null; /** * Cache project validation results. * @task T4525 */ export declare function cacheValidationResult(projectHash: string, projectPath: string, validationStatus: 'passed' | 'failed' | 'warning', issues?: string[], schemaVersions?: SchemaVersions, cacheFile?: string): void; /** * Clear cache for a specific project. * @task T4525 */ export declare function clearProjectCache(projectHash: string, cacheFile?: string): void; /** * Clear entire cache. * @task T4525 */ export declare function clearEntireCache(cacheFile?: string): void; //# sourceMappingURL=project-cache.d.ts.map