/**
 * 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<string, ProjectCacheEntry>;
}
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