/** * Per-type lockfile reads, keyed by catalog extension type. * * `WorkspaceMutationsService` exposes one `getLockedX()` accessor per type. The * table here is the single place that maps a type id onto its accessor, so * callers that work over the whole catalog — installed-identifier resolution, * ` show` — stay total without a switch of their own. * * @experimental This API is unstable and may change without notice. */ import type * as Effect from "effect/Effect"; import type { AppError } from "../app-error/index.js"; import type { CatalogExtensionType } from "../extension-types/schema.js"; import type { HookLockEntry, KnowledgeLockEntry, KnowledgeLockMap, McpServerLockEntry, RuleLockEntry, SkillLockEntry, SubagentLockEntry } from "../lockfile/index.js"; import type { WorkspaceMutationsService } from "./service-interface.js"; /** * Any per-type lock entry. Every arm of every lock union comes from the same * factory, so narrowing to `type === "registry"` yields `owner`, `name`, and * `resolvedVersion` uniformly no matter which type produced the entry. */ export type AnyLockEntry = SkillLockEntry | SubagentLockEntry | McpServerLockEntry | RuleLockEntry | HookLockEntry | KnowledgeLockEntry; export type AnyLockMap = { readonly [name: string]: AnyLockEntry; }; /** Read the whole lock map for one catalog extension type. */ export declare const getLockedEntries: (ws: WorkspaceMutationsService, type: CatalogExtensionType) => Effect.Effect; /** Read accepted external Knowledge resolutions from the workspace lockfile. */ export declare const getKnowledgeLockEntries: (ws: WorkspaceMutationsService) => Effect.Effect; /** Resolved version for a lock entry, when its source arm carries one. */ export declare const lockEntryVersion: (entry: AnyLockEntry) => string | null; //# sourceMappingURL=locked-entries.d.ts.map