import type { SpecLock } from '../types/index.js';
/** Returns true when the lock's expiration time is in the past. */
export declare function isExpired(lock: SpecLock): boolean;
/**
 * Read a lock from disk. Returns null if the file does not exist.
 * Does NOT filter out expired locks — callers must check isExpired().
 */
export declare function getLock(projectPath: string, specId: string): Promise<SpecLock | null>;
/** Write a lock to disk, creating parent directories as needed. */
export declare function saveLock(projectPath: string, specId: string, lock: SpecLock): Promise<void>;
/** Remove a lock file. Silently succeeds if the file does not exist. */
export declare function deleteLock(projectPath: string, specId: string): Promise<void>;
/**
 * Return all active (non-expired) locks for a project.
 * Reads all .json files from the locks/ directory and filters out expired ones.
 */
export declare function listActiveLocks(projectPath: string): Promise<SpecLock[]>;
/**
 * Returns true when a non-expired lock exists for the given spec.
 */
export declare function isLocked(projectPath: string, specId: string): Promise<boolean>;
//# sourceMappingURL=spec-lock-store.d.ts.map