import type { SkillLockEntry } from "../lockfile/types.js"; export interface BuildGitHubInstallLockEntryArgs { /** Resolved skill version (frontmatter `version:` or "1.0.0" fallback). */ version: string; /** SHA of the SKILL.md content (for ghost-file detection on update). */ sha: string; /** GitHub owner (e.g. "anton-abyzov"). */ owner: string; /** GitHub repo (e.g. "vskill"). */ repo: string; /** * Repo-relative path to the skill's SKILL.md (e.g. * "plugins/sw/skills/greet-anton/SKILL.md", or "SKILL.md" for root). * * Pass `null` only when the path is genuinely unknown — the studio will * then fall back to the local-path copy-chip instead of synthesising a * (likely-wrong) GitHub blob URL. */ sourceSkillPath: string | null; /** Branch/ref used when installing from GitHub. */ branch?: string | null; /** Commit SHA at install time. */ commitSha?: string | null; /** Plugin namespace that owns this skill, if discovered from plugins//skills/. */ pluginName?: string | null; /** Whether this is a user-global install (`--global`) vs project-local. */ global: boolean; /** ISO timestamp; injected for deterministic tests, defaults to `now`. */ installedAt?: string; } export declare function buildGitHubInstallLockEntry(args: BuildGitHubInstallLockEntryArgs): SkillLockEntry;