import type { RegisteredProject, GlobalProjectsRegistry } from '../types/index.js';
/**
 * Read the full registry from disk.
 * Returns an empty registry when the file does not exist.
 */
export declare function getRegistry(): Promise<GlobalProjectsRegistry>;
/**
 * Persist the full registry to disk.
 */
export declare function saveRegistry(registry: GlobalProjectsRegistry): Promise<void>;
/**
 * Add a project to the registry.
 * If the project already exists (same path), its hash is refreshed and the
 * entry is returned without duplicating it.
 * Returns the registered project entry.
 */
export declare function addProject(projectPath: string): Promise<RegisteredProject>;
/**
 * Remove a project from the registry by path.
 * Returns true if the project was found and removed, false otherwise.
 */
export declare function removeProject(projectPath: string): Promise<boolean>;
/**
 * Return the list of all registered projects.
 *
 * Filters out ephemeral entries (test fixtures, /var/folders/, /tmp/) on every
 * read to handle entries written by older versions before SPEC-581's preventive
 * filter shipped. When any entry is filtered, a fire-and-forget prune writes
 * the cleaned registry back to disk so subsequent reads avoid the work.
 *
 * Use {@link getRegistry} when callers need the raw, unfiltered registry
 * (e.g. for diagnostics or repair tooling).
 */
export declare function getProjects(): Promise<RegisteredProject[]>;
//# sourceMappingURL=global-projects-store.d.ts.map