/**
 * SHA-256 Hash Utilities for Provenance Integrity Verification
 *
 * This module provides cryptographic hashing functions for the OCR Provenance MCP System.
 * All hashes use the format: 'sha256:' + 64-character lowercase hex string.
 *
 * @module utils/hash
 * @see CS-PROV-002 Hash Computation standard in constitution.md
 */
/**
 * Compute SHA-256 hash of content
 *
 * @param content - String or Buffer to hash
 * @returns Hash in format 'sha256:' + 64-char lowercase hex string
 * @example
 * computeHash('hello')
 * // Returns: 'sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'
 *
 * @example
 * computeHash(Buffer.from([0x01, 0x02, 0x03]))
 * // Returns: 'sha256:039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81'
 */
export declare function computeHash(content: string | Buffer): string;
/**
 * Compute SHA-256 hash of a file using streaming (memory efficient)
 *
 * This function reads the file in chunks using a stream, making it suitable
 * for hashing large files without loading them entirely into memory.
 *
 * @param filePath - Absolute path to file
 * @returns Promise resolving to hash in format 'sha256:' + 64-char hex string
 * @throws Error if file doesn't exist, path is not absolute, or can't be read
 *
 * @example
 * const hash = await hashFile('/path/to/document.pdf');
 * // Returns: 'sha256:...'
 */
export declare function hashFile(filePath: string): Promise<string>;
/**
 * Compute SHA-256 hash of a file synchronously using chunked reads.
 *
 * Reads the file in 64KB chunks to avoid loading the entire file into memory.
 * Suitable for hashing large image files during batch processing.
 *
 * @param filePath - Path to the file to hash
 * @returns Hash in format 'sha256:' + 64-char lowercase hex string
 * @throws Error if file cannot be read
 */
export declare function computeFileHashSync(filePath: string): string;
/**
 * Validate hash format is correct
 *
 * @param hash - Hash string to validate
 * @returns true if format is 'sha256:' + 64 lowercase hex chars, false otherwise
 *
 * @example
 * isValidHashFormat('sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824')
 * // Returns: true
 *
 * @example
 * isValidHashFormat('sha256:ABC123') // Wrong length, uppercase
 * // Returns: false
 */
export declare function isValidHashFormat(hash: string): boolean;
//# sourceMappingURL=hash.d.ts.map