import { Command, type OptionValues } from 'commander'; export declare const INVALID_SKILL_NAME = "Skill name may only contain ASCII letters, numbers, and hyphens."; /** Identifies where a skill's files live: the working directory and the skills folder within it. */ interface SkillLocation { /** The current working directory that skill paths are resolved against. */ cwd: string; /** Directory (relative to `cwd`) that contains all skills. */ skillsDir: string; } /** Outcome of validating a candidate skill name. */ type SkillNameValidation = { valid: true; } | { valid: false; message: string; alreadyExists: boolean; }; /** Create domain based skill command */ export declare function createSkillCommand(): Command; /** Creates a new AI skill */ export declare function createSkill(program: OptionValues): Promise; /** * Validates a candidate skill name, which is used both as the skill's directory name and * as the `name` written into the generated SKILL.md frontmatter. Only the directory name * matters for bundling, since the document id is derived from it; see * {@link INVALID_SKILL_NAME} for why the character set is still restricted and the length * is not. * * Pure by design: no logging or telemetry, so the same rules apply to both * the eager CLI-provided check and the interactive prompt validator. */ export declare function validateSkillName(candidate: string, { cwd, skillsDir }: SkillLocation): SkillNameValidation; /** * Validates a candidate skill description: it is required, because it is shown to the * AI agent to decide relevance. Its length is not restricted - the description stays in * the `SKILL.md` frontmatter and is never written to the app manifest, so none of the * backend document `description` limits apply to it. */ export declare function validateSkillDescription(candidate: string): { valid: true; } | { valid: false; message: string; }; export {};