export type RelativePathErrorReason = "empty" | "absolute" | "traversal"; export type ManifestPath = { readonly kind: "relative"; readonly path: string; } | { readonly kind: "absolute"; readonly path: string; }; export declare class RelativePathError extends Error { readonly reason: RelativePathErrorReason; constructor(reason: RelativePathErrorReason); } /** * Produces a platform-independent repository-relative path without resolving * filesystem links. Input values are intentionally omitted from errors. */ export declare function normalizeRelativePath(input: string): string; /** * Normalizes one manifest path without weakening repository-relative path handling elsewhere. * Absolute entries use forward slashes for stable identity on every host; traversal remains an * error instead of being resolved away. */ export declare function normalizeManifestPath(input: string): ManifestPath;