import type { DeepReadonly } from "../../package-graph/build.js"; export type SkillPackCustodyRefusalCode = "invalid-input" | "lifecycle-refused" | "invalid-trust-lock" | "installed-snapshot-refused" | "ownership-state-pending" | "authority-state-changed" | "authority-mismatch" | "invalid-custody-receipt" | "custody-mismatch"; export interface SkillPackCustodyCandidate { readonly path: string; readonly ownershipReceiptSha256: string; readonly trustLockSha256: string; readonly custodyReceiptSha256?: string; } export type SkillPackCustodyPlan = { readonly schemaVersion: 1; readonly status: "unowned"; readonly code: "missing-custody-receipt" | "ownership-state-pending"; readonly candidate: Readonly; } | { readonly schemaVersion: 1; readonly status: "verified-existing"; readonly candidate: Readonly; } | { readonly schemaVersion: 1; readonly status: "not-applicable"; readonly code: "no-desired-custody"; } | { readonly schemaVersion: 1; readonly status: "refused"; readonly code: SkillPackCustodyRefusalCode; readonly candidate?: Readonly; }; /** * Verify an already-existing skill-pack custody receipt against live package state and bytes. * Absence stays explicitly unowned; this function never creates or writes custody evidence. */ export declare function planSkillPackCustody(input: unknown): DeepReadonly;