import { type CommandSpec } from "../internals/plan.js"; import { type SkillLockEntry } from "../skill/lockfile.js"; import { type PackSkillRef, type PacksFile } from "./manifest.js"; /** The manifest ref DERIVED from a lock entry — authoring copies the pin, never invents one. */ export declare function deriveRef(entry: SkillLockEntry): PackSkillRef; /** * Append `ref` to `packName`, creating the pack when absent — immutable. Skills * are name-sorted inside the pack and packs name-sorted across the file, for * stable committed diffs (the `upsertSkillLockEntry` rationale). `description` * is applied only at creation (an existing pack's curation prose stays its own). */ export declare function upsertPack(file: PacksFile, packName: string, ref: PackSkillRef, description?: string): PacksFile; /** * Drop `skillName`'s ref from `packName` — immutable. A pack emptied by the * removal is dropped WHOLE (the schema requires at least one skill ref, so an * empty pack could never be read back). */ export declare function removeEntry(file: PacksFile, packName: string, skillName: string): PacksFile; export declare const packAddCommand: CommandSpec; export declare const packRemoveEntryCommand: CommandSpec; export declare const packInitCommand: CommandSpec;