/**
 * Folder path validation and normalization for nested folders within a repo.
 *
 * Folder paths are repo-relative POSIX strings (e.g. "clients/acme"). They never
 * start or end with "/", and segments must be filesystem-safe. Empty string is
 * the repo root.
 *
 * `folder_path` is derived from the file's location on disk at read time — it's
 * not stored in frontmatter. That keeps the filesystem as the source of truth
 * and avoids the rename-folder-must-update-N-files problem.
 */
export declare class InvalidFolderPathError extends Error {
    constructor(message: string);
}
/**
 * Validate a single folder segment (one level of the path). Throws on:
 * - empty string
 * - leading/trailing whitespace or dots
 * - path separators
 * - reserved chars or names
 */
export declare function validateFolderSegment(name: string): void;
/**
 * Normalize a folder path: trim slashes, collapse repeats. Returns "" for root.
 * Throws on `..` segments (prevents escaping the repo).
 */
export declare function normalizeFolderPath(path: string | undefined | null): string;
/**
 * Validate a full folder path (one or more segments joined by "/"). Returns
 * the normalized form for convenience.
 */
export declare function validateFolderPath(path: string | undefined | null): string;
/**
 * Compute the parent folder path. Returns "" if already at root.
 */
export declare function parentFolderPath(path: string): string;
/**
 * Derive the folder_path of a file given its absolute path and the repo root.
 * Returns "" if the file lives at the repo root.
 */
export declare function folderPathFromFile(filePath: string, repoPath: string): string;
