import type { ProjectsRegistry, ProjectEntry } from '../models/project'; /** * Resolve the effective registry path at call time. * Checks primary dir first, then legacy fallback, then defaults to primary. * Replaced the former module-level DEFAULT_REGISTRY_PATH const to avoid * capturing a stale path when the primary directory is created after import. */ export declare function getDefaultRegistryPath(): string; /** * Load the projects registry from disk. * Creates the file with empty registry if it doesn't exist. * Per FS-SS-002-0010 VR-003: cleans up stale .tmp files from interrupted writes. */ export declare function loadRegistry(registryPath?: string): ProjectsRegistry; /** * Save the projects registry to disk atomically. * Per FS-SS-002-0010 VR-003: write to temp file, then rename. * Rename is atomic on POSIX and reliable on Windows for same-volume moves. * Writes always go to the primary path. */ export declare function saveRegistry(registry: ProjectsRegistry, registryPath?: string): void; /** * Add a project to the registry. * @throws DuplicateProjectError (ERR-PROJ-001) if the project name already exists */ export declare function addProject(name: string, folder: string, registryPath?: string): ProjectsRegistry; /** * Remove a project from the registry. * @throws ProjectNotFoundError (ERR-PROJ-007) if the project doesn't exist */ export declare function removeProject(name: string, registryPath?: string): ProjectsRegistry; /** * Get a project entry from the registry. * @throws ProjectNotFoundError (ERR-PROJ-007) if the project doesn't exist */ export declare function getProject(name: string, registryPath?: string): ProjectEntry; /** * List all registered projects. */ export declare function listProjects(registryPath?: string): ProjectsRegistry; /** * Find a project by folder path (for CWD resolution). * Uses longest-prefix match to handle subdirectories. * Per FS-SS-002-0007 VR-003: paths are normalized to OS-native format before comparison. */ export declare function findProjectByFolder(folder: string, registryPath?: string): { name: string; entry: ProjectEntry; } | null; //# sourceMappingURL=registry.d.ts.map