import * as Effect from "effect/Effect"; import type * as FileSystem from "effect/FileSystem"; import type * as HttpClient from "effect/unstable/http/HttpClient"; import * as Option from "effect/Option"; import type * as Path from "effect/Path"; import { type AppError } from "../app-error/index.js"; import { type CatalogExtensionType } from "../extension-types/schema.js"; import { type ExtensionName, type Handle } from "../extensions/index.js"; import { WorkspaceMutations } from "../workspace/index.js"; /** * Every non-pack extension type an installed identifier can name. Packs are * excluded because they are containers: a pack has no per-type lock map of its * own to resolve a bare name against. */ export type IdentifierResourceType = CatalogExtensionType; export type IdentifierResolutionScope = "installed" | "registry" | "both"; export interface ResolvedIdentifier { readonly input: string; readonly owner: Option.Option; readonly type: IdentifierResourceType; readonly name: ExtensionName; readonly fqn: string; readonly installedName: Option.Option; readonly registryLocation: Option.Option; readonly registrySourceName: Option.Option; readonly source: "installed" | "registry" | "passthrough"; } export interface ResolveIdentifierArgs { readonly input: string; readonly resourceType: IdentifierResourceType; readonly scope: IdentifierResolutionScope; readonly registrySourceName: string; } export declare const resolveIdentifier: (args: ResolveIdentifierArgs) => Effect.Effect<{ input: string; owner: Option.Option>; type: "skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge"; name: string & import("effect/Brand").Brand<"ExtensionName">; fqn: string; installedName: Option.Option; registryLocation: Option.Option; registrySourceName: Option.Option; source: "registry" | "installed"; } | { input: string; owner: Option.Option>; type: "skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge"; name: string & import("effect/Brand").Brand<"ExtensionName">; fqn: string; installedName: Option.Option>; registryLocation: Option.Option; registrySourceName: Option.Option; source: "passthrough"; }, AppError, Path.Path | FileSystem.FileSystem | HttpClient.HttpClient | WorkspaceMutations>; export declare const resolveInstalledIdentifier: (args: { readonly input: string; readonly resourceType: IdentifierResourceType; }) => Effect.Effect<{ input: string; owner: Option.Option>; type: "skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge"; name: string & import("effect/Brand").Brand<"ExtensionName">; fqn: string; installedName: Option.Option; registryLocation: Option.Option; registrySourceName: Option.Option; source: "registry" | "installed"; }, AppError, WorkspaceMutations>; export declare const resolveInstalledIdentifierNameOrInput: (args: { readonly input: string; readonly resourceType: IdentifierResourceType; }) => Effect.Effect; //# sourceMappingURL=resolve-identifier.d.ts.map