import type { SkillMeta } from "./registry.js"; import type { PortableSkillManifest } from "./portable-skills.js"; export interface SkillValidationMessage { code: string; message: string; } export interface SkillValidationResult { name: string; path: string; valid: boolean; issues: SkillValidationMessage[]; warnings: SkillValidationMessage[]; metadata: { packageName?: string; version?: string; binCommands: string[]; docFiles: string[]; skillMdFrontmatter?: SkillFrontmatter; portableManifest?: PortableSkillManifest; provenance?: SkillValidationProvenance; runtime?: "local" | "hosted"; }; } export interface RegistryConsistencyResult { valid: boolean; missingDirectories: string[]; orphanDirectories: string[]; duplicateRegistryNames: string[]; } export interface SkillFrontmatter { name?: string; description?: string; displayName?: string; category?: string; tags?: string[]; version?: string; source?: string; } export interface SkillValidationProvenance { directoryName: string; packageName?: string; packageVersion?: string; frontmatterSource?: string; registrySource?: string; packageSkillSource?: string; } export declare function parseSkillFrontmatter(content: string): SkillFrontmatter | null; export declare function validateSkillDirectory(name: string, skillPath: string, registryMeta?: SkillMeta): SkillValidationResult; export declare function validateRegistryConsistency(registry: SkillMeta[], skillsDir: string): RegistryConsistencyResult;