/**
 * Incremental Certification Caching
 *
 * Tracks file hashes to enable incremental certification. Instead of re-auditing
 * the entire codebase, only changed files are analyzed in subsequent runs.
 *
 * Cache structure:
 * ```
 * .vaspera/certifications/{cert-id}/cache.json
 * ```
 *
 * @module certification/cache
 */
/**
 * Hash information for a single file
 */
export interface FileHash {
    /** Relative path from project root */
    path: string;
    /** SHA-256 hash of file contents */
    hash: string;
    /** ISO timestamp of when this file was last checked */
    lastChecked: string;
    /** File size in bytes */
    size: number;
}
/**
 * Certification cache containing file hashes
 */
export interface CertificationCache {
    /** Cache format version for future compatibility */
    version: 1;
    /** Combined hash of all project files */
    projectHash: string;
    /** Timestamp when cache was created */
    createdAt: string;
    /** Timestamp when cache was last updated */
    updatedAt: string;
    /** Individual file hashes */
    files: FileHash[];
}
/**
 * Result of comparing current files against cache
 */
export interface CacheComparison {
    /** Files that have changed since last certification */
    changed: string[];
    /** Files that are new since last certification */
    added: string[];
    /** Files that were removed since last certification */
    removed: string[];
    /** Files that are unchanged */
    unchanged: string[];
    /** Whether the cache is valid and can be used */
    cacheValid: boolean;
}
/**
 * Compute SHA-256 hash of a file
 *
 * @param filePath - Absolute path to the file
 * @returns Hex-encoded SHA-256 hash
 */
export declare function hashFile(filePath: string): Promise<string>;
/**
 * Compute a combined hash of multiple file hashes
 *
 * @param hashes - Array of file hashes to combine
 * @returns Hex-encoded SHA-256 hash of all files
 */
export declare function computeProjectHash(hashes: FileHash[]): string;
/**
 * Generate file hashes for all relevant files in a project
 *
 * @param projectPath - Absolute path to project root
 * @returns Array of file hashes
 */
export declare function generateFileHashes(projectPath: string): Promise<FileHash[]>;
/**
 * Load certification cache from disk
 *
 * @param certDir - Certification directory path
 * @returns Cache object or null if not found/invalid
 */
export declare function loadCache(certDir: string): Promise<CertificationCache | null>;
/**
 * Save certification cache to disk
 *
 * @param certDir - Certification directory path
 * @param cache - Cache object to save
 */
export declare function saveCache(certDir: string, cache: CertificationCache): Promise<void>;
/**
 * Create a new cache from current project state
 *
 * @param projectPath - Absolute path to project root
 * @returns New certification cache
 */
export declare function createCache(projectPath: string): Promise<CertificationCache>;
/**
 * Compare current project state against a cached state
 *
 * @param projectPath - Absolute path to project root
 * @param cache - Previous certification cache
 * @returns Comparison result showing what changed
 */
export declare function compareWithCache(projectPath: string, cache: CertificationCache): Promise<CacheComparison>;
/**
 * Get list of files that need re-auditing based on cache comparison
 *
 * @param comparison - Result of cache comparison
 * @returns Array of file paths that need to be re-audited
 */
export declare function getFilesToAudit(comparison: CacheComparison): string[];
/**
 * Check if incremental audit is possible (cache exists and is valid structure)
 *
 * @param certDir - Certification directory path
 * @returns Whether incremental audit can be performed
 */
export declare function canUseIncrementalAudit(certDir: string): Promise<boolean>;
//# sourceMappingURL=cache.d.ts.map