/** * Extension ref union assembler. * * Imports per-type concrete refs from feature folders and defines the * unified `ExtensionRef` union. This file is a leaf — feature folders * import only from `ref-base.ts`, never from this file. * * @experimental This API is unstable and may change without notice. * @packageDocumentation */ import type { ExtensionName } from "../common.js"; import type { SkillExtensionRef } from "./skill.js"; import type { McpServerExtensionRef } from "./mcp-server.js"; import type { SubagentExtensionRef } from "./subagent.js"; import type { RuleExtensionRef } from "./rule.js"; import type { HookExtensionRef } from "./hook.js"; import type { KnowledgeExtensionRef } from "./knowledge.js"; import type { PackRef } from "./pack.js"; /** @experimental */ export type ExtensionRef = SkillExtensionRef | McpServerExtensionRef | SubagentExtensionRef | RuleExtensionRef | HookExtensionRef | KnowledgeExtensionRef | PackRef; /** * Whether the source this ref was discovered in holds the package as a copy * it acquired from another publisher. Discovery decides this from where the * source keeps the package; a held package is installable by name and as a * Pack's member, but is not part of what the source offers. * * @experimental */ export declare const sourceHolds: (ref: ExtensionRef) => boolean; /** * The name an extension's own manifest gives it: the configured workspace * name it occupies. A Registry ref's `name` is the package the Registry * serves it under and may differ; Registry operations use that one. * * @experimental */ export declare const extensionRefName: (ref: ExtensionRef) => ExtensionName; //# sourceMappingURL=extension-ref.d.ts.map