import type { SkillSource, SkillRegistryEntry, SkillRegistry } from '../types/skill-registry.js';
export type { SkillSource, SkillRegistryEntry, SkillRegistry };
export declare const REGISTRY_RELATIVE_PATH = ".planu/skill-registry.json";
export declare const DEFAULT_TTL_DAYS = 30;
export declare const ALL_SKILL_SOURCES: SkillSource[];
/**
 * Read the registry from .planu/skill-registry.json.
 * Returns empty registry (timestamps at epoch) if file is missing or corrupted.
 */
export declare function readSkillRegistry(projectPath: string): Promise<SkillRegistry>;
/**
 * Overwrite the full registry file atomically.
 * Creates .planu/ directory if needed.
 */
export declare function writeSkillRegistry(projectPath: string, registry: SkillRegistry): Promise<void>;
/**
 * Upsert a single skill entry (serialized via file-mutex to prevent lost writes).
 *
 * Conflict resolution rule:
 *   - If the same skill already exists from a non-local source and the new source is 'local',
 *     overwrite and record `conflictResolution: 'local-wins'`.
 *   - Otherwise, always overwrite (last write wins for same or same-priority sources).
 */
export declare function writeSkillRegistryEntry(projectPath: string, entry: Omit<SkillRegistryEntry, 'conflictResolution'>): Promise<void>;
/**
 * Return skill names whose adaptedAt is older than their ttlDays.
 */
export declare function getStaleRegistryEntries(projectPath: string): Promise<string[]>;
//# sourceMappingURL=skill-registry-storage.d.ts.map