/**
 * 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<string, SkillHubLockEntry>;
}
export declare function loadSkillsLock(): SkillsLockFile;
export declare function saveSkillsLock(lock: SkillsLockFile): 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<SkillHubLockEntry, 'kind' | 'source' | 'ref' | 'subpath'>, contentHash: string): void;
export declare function removeSkillsLockEntry(skillId: string): void;
export declare function getSkillsLockEntry(skillId: string): SkillHubLockEntry | undefined;
