/**
 * Slash-skill discovery and parsing.
 *
 * Discovers SKILL.md files from Claude Code-compatible locations:
 *   - .claude/skills/<name>/SKILL.md  (project)
 *   - ~/.claude/skills/<name>/SKILL.md (personal)
 *   - .claude/commands/<name>.md       (legacy)
 *
 * Skills provide slash-command autocomplete and can inject instructions
 * into the agent's prompt when invoked via `/skill-name`.
 */
export interface SlashSkill {
    /** Slash command name (without leading /) */
    name: string;
    /** Human-readable description */
    description: string;
    /** Hint shown during autocomplete for expected arguments */
    argumentHint?: string;
    /** If true, Claude cannot auto-invoke this skill */
    disableModelInvocation?: boolean;
    /** If false, hidden from / menu (background knowledge only) */
    userInvocable?: boolean;
    /** Raw markdown content (instructions) */
    content: string;
    /** Source: "project", "personal", "legacy", "built-in", or "custom" */
    source: "project" | "personal" | "legacy" | "built-in" | "custom";
    /** Absolute path to the SKILL.md or command .md file */
    filePath: string;
    /** Optional allowed tools list */
    allowedTools?: string[];
    /** Optional context mode (e.g. "fork") */
    context?: string;
    /** Optional agent type for forked context */
    agent?: string;
}
interface FrontMatter {
    name?: string;
    description?: string;
    "argument-hint"?: string;
    "disable-model-invocation"?: boolean;
    "user-invocable"?: boolean;
    "allowed-tools"?: string | string[];
    allowed_tools?: string | string[];
    context?: string;
    agent?: string;
}
/** Parse YAML frontmatter from a SKILL.md or command .md file. */
export declare function parseFrontmatter(raw: string): {
    frontmatter: FrontMatter;
    content: string;
};
/** Apply $ARGUMENTS, $ARGUMENTS[N], and $N substitutions. */
export declare function applySubstitutions(content: string, args: string): string;
/**
 * Get the complete list of directories scanned for slash skills.
 * Returns both default (built-in) and custom directories.
 */
export declare function getSkillDirectories(cwd: string, projectConfigStore?: {
    get(key: string): string | undefined;
}): {
    path: string;
    source: string;
    isCustom: boolean;
}[];
/**
 * Discover all slash skills for a given working directory.
 * Merges project, personal, legacy, custom, and built-in sources.
 * Priority (highest wins): project > bobbit project > personal > bobbit personal > legacy > custom > built-in.
 */
export declare function discoverSlashSkills(cwd: string, projectConfigStore?: {
    get(key: string): string | undefined;
}): SlashSkill[];
/** Look up a single slash skill by name. */
export declare function getSlashSkill(cwd: string, name: string, projectConfigStore?: {
    get(key: string): string | undefined;
}): SlashSkill | undefined;
/**
 * Build the prompt text to inject when a slash skill is invoked.
 * Applies argument substitutions and returns the processed content.
 * If $ARGUMENTS is not present in the content, appends "ARGUMENTS: <args>" at the end.
 */
export declare function buildSlashSkillPrompt(skill: SlashSkill, args: string): string;
export {};
//# sourceMappingURL=slash-skills.d.ts.map