/** * Deterministic SHA256 hashing for asset content. * * One algorithm shared by: * - glob discovery (`discover.ts`) * - author-shipped manifest discovery (`discover-manifest.ts`) * - virtual-tree discovery (`tree-entries.ts`, via its own copy using async fetch) * * Hashing rule: files sorted alphabetically. For each file feed * `path` + `\0` + `content` + `\0` * into SHA256. Yields the same hash regardless of OS or filesystem ordering. * * Files that are referenced by the file filter but absent on disk are skipped * (non-fatal): they typically represent optional companion files like * `validator.py` that may not exist for every asset. The author-manifest path * surfaces missing files as a hard error before reaching the hash step, so * this only matters for the glob discovery code path. */ /** * Compute a deterministic SHA256 hash over a set of files. * * @param assetRoot - Absolute path to the asset root directory * @param files - Relative file paths (from `assetRoot`) to include in the hash * @returns Hex-encoded SHA256 digest * @docLink packages/discovery/concepts#compute-deterministic-hash */ export declare function computeDeterministicHash(assetRoot: string, files: string[]): string; /** * Compute SHA256 over a curated file set with full visibility into which * files contributed bytes vs were skipped because they're missing on disk. * * Used by the author-shipped manifest verifier where missing files are a * hard error, not a silent skip. * * @param assetRoot - Absolute path to the asset root directory * @param files - Relative file paths (from `assetRoot`) to include * @returns `{ sha256, present, missing }` — present/missing are relative paths * @docLink packages/discovery/concepts#compute-deterministic-hash-detailed */ export declare function computeDeterministicHashDetailed(assetRoot: string, files: string[]): { sha256: string; present: string[]; missing: string[]; }; //# sourceMappingURL=hash.d.ts.map