import { type PathRejection } from "./paths.js"; export interface ManifestEntry { /** dist-relative, forward slashes, no leading `/`, normalized. */ path: string; size: number; /** base64 std. */ sha256: string; } export interface Manifest { files: ManifestEntry[]; totalBytes: number; } export declare class ManifestError extends Error { readonly reason: PathRejection | "no_dist"; readonly offendingPath: string; constructor(reason: PathRejection | "no_dist", offendingPath: string, message: string); } /** Recursively list files under `dir` as dir-relative POSIX paths. Symlinks are not followed. */ export declare function walkDist(dir: string, base?: string): Promise; /** sha256 of a file, base64 std — the exact form `x-amz-checksum-sha256` wants. */ export declare function hashFile(absPath: string): Promise; /** * Build the manifest for a dist directory. Every path is normalized before it is * hashed, so the string this returns is the string the API validates, signs, and * later lists — there is no second form anywhere. */ export declare function buildManifest(distDir: string): Promise;