/** * Skills hub lock (~/.xopc/skills-lock.json): records install source + tree hash per managed skill id. */ export type SkillHubKind = 'git' | 'archive'; export interface SkillHubLockEntry { kind: SkillHubKind; /** Clone URL, tarball URL, or file path (as given at install time). */ source: string; /** Git branch / tag / ref (optional). */ ref?: string; /** Path inside the cloned repo (POSIX, no leading slash). */ subpath?: string; /** Deterministic tree hash from {@link computeSkillTreeHash}. */ contentHash: string; installedAt: string; updatedAt: string; } export interface SkillsLockFile { version: 1; entries: Record; } export declare function loadSkillsLock(lockPath?: string): SkillsLockFile; export declare function saveSkillsLock(lock: SkillsLockFile, lockPath?: string): void; /** Record or replace hub metadata for a managed skill directory id (folder name under ~/.xopc/skills). */ export declare function recordSkillsHubInstall(skillId: string, meta: Pick, contentHash: string, lockPath?: string): void; export declare function removeSkillsLockEntry(skillId: string, lockPath?: string): void; export declare function getSkillsLockEntry(skillId: string, lockPath?: string): SkillHubLockEntry | undefined;