import { ResourceRegistry } from '@vibe-agent-toolkit/resources'; import { ClaudeSkillInventory } from './types.js'; /** * A registry to link-walk against, or a way to obtain one. * * Pass the provider form when building the registry is expensive and the caller * cannot tell in advance whether it is needed: a registry costs a whole-corpus * crawl, and a plugin of only commands/ and agents/ walks no links at all. * * The provider is invoked from INSIDE the link walk's try/catch, which is what * keeps both extractors' "never throws" contract intact: a crawl that fails * (one unreadable markdown file under the root is enough) degrades that skill's * `files.linked` to empty and surfaces as a parseErrors entry, exactly as it did * when the crawl was unconditionally inline. */ export type SharedRegistrySource = ResourceRegistry | (() => Promise); /** * Build a SkillInventory for a single SKILL.md. * * Consumes existing link-graph and frontmatter machinery — does not * re-walk or re-parse. Failures inside those parsers are surfaced via * parseErrors[]; nothing here throws on bad input. */ export declare function extractClaudeSkillInventory(skillMdPath: string, sharedRegistry?: SharedRegistrySource): Promise; /** * Crawl + link-resolve a registry covering `projectRoot`. * * Untracked skills and linked documents the user is actively authoring must be * included alongside committed files. Ask git that narrower question * (`includeUntracked`) rather than `respectGitignore: false`, which * additionally pulls in every ignored tree AND abandons `git ls-files` for a * full recursive walk — 39.6 s versus 16 ms for the same file set on a * ~1,200-document monorepo. */ export declare function crawlSkillLinkRegistry(projectRoot: string): Promise; //# sourceMappingURL=extract-skill.d.ts.map