import { type FrontMcpLogger } from '../common'; import { type SkillResources } from '../common/metadata/skill.metadata'; import { type SkillFileRecord } from '../common/records/skill.record'; /** * Result of scanning a skill directory for resource subdirectories. */ export interface ScanResult { /** Detected resource directories */ resources: SkillResources; /** Whether SKILL.md exists in the directory */ hasSkillMd: boolean; } /** * Scan a directory for Agent Skills spec resource subdirectories. * * Checks for existence of scripts/, references/, and assets/ directories. * * @param dirPath - Path to the skill directory * @returns Scan result with detected resources */ export declare function scanSkillResources(dirPath: string): Promise; /** * Walk a skill directory and reject any nested SKILL.md. * * Per SEP-2640 §Resource Mapping: "A `SKILL.md` MUST NOT appear in any * descendant directory of a skill. The skill directory is the boundary; * skills do not nest inside other skills." * * Returns the relative paths (from `dirPath`) of any nested SKILL.md * files found. The root SKILL.md at `dirPath/SKILL.md` is excluded. */ export declare function findNestedSkillMd(dirPath: string, maxDepth?: number): Promise; /** * Load a full skill directory into a SkillFileRecord. * * Reads SKILL.md, parses frontmatter, detects resource directories, * and validates the result. * * @param dirPath - Path to the skill directory * @param logger - Optional SDK logger for structured warnings * @returns A SkillFileRecord ready for registration * @throws Error if SKILL.md is not found or metadata is invalid */ export declare function loadSkillDirectory(dirPath: string, logger?: FrontMcpLogger): Promise; /** * Convenience helper to load a skill directory. * Returns a SkillFileRecord suitable for passing to `@FrontMcp({ skills: [...] })`. * * @param dirPath - Path to the skill directory containing SKILL.md * @param logger - Optional SDK logger for structured warnings * @returns A SkillFileRecord * * @example * ```typescript * const mySkill = await skillDir('./skills/review-pr'); * * @FrontMcp({ skills: [mySkill] }) * class MyApp {} * ``` */ export declare function skillDir(dirPath: string, logger?: FrontMcpLogger): Promise; //# sourceMappingURL=skill-directory-loader.d.ts.map