import type { ParseSkillOptions, SkillDefinition } from "./types/skill.js";
export declare class SkillRegistry {
private skills;
register(skill: SkillDefinition): void;
registerMultiple(skills: SkillDefinition[]): void;
unregister(name: string): boolean;
unregisterMultiple(names: string[]): void;
get(name: string): SkillDefinition | undefined;
list(): SkillDefinition[];
/**
* 自动扫描目录下的 SKILL.md 文件并注册。
* 扫描规则(对齐 Claude Code loadSkillsDir):
* -
/SKILL.md — 单 skill
* - //SKILL.md — 多 skill,每个子目录一个
* 解析失败的单个文件跳过(best-effort),不阻断其他加载。
*
* @returns 成功加载的 skill 数量
*/
loadFromDirectory(dir: string): number;
/**
* 获取 skill 的 slash command 名称(对齐 Claude Code /skill-name)。
* 返回所有已注册 skill 的 slash command 列表。
*/
getSlashCommands(): Array<{
name: string;
skillName: string;
description: string;
}>;
/**
* 按 slash command 名称查找 skill(如 "/commit" → name="commit")。
*/
getBySlashCommand(slashCommand: string): SkillDefinition | undefined;
/**
* 自动发现并加载所有 skill(对齐 Claude Code 的 skill 发现链路):
* 1. 全局: ~/.sirius/skills/
* 2. 项目: /.sirius/skills/
* 3. 配置: SIRIUS_SKILLS_PATH 环境变量(冒号分隔多路径)
*
* @returns 成功加载的 skill 数量
*/
autoDiscover(workdir?: string): number;
}
export declare function parseSkillMarkdown(markdown: string, options?: ParseSkillOptions): SkillDefinition;
export interface RenderAvailableSkillsOptions {
/**
* 最大渲染 skill 条数。达上限后停止追加,并在页脚标注省略数。
* 传 `Infinity` 表示不限制。默认 40。
*/
maxSkills?: number;
/**
* 累计字符预算(渲染后字符串总长度,含标签/换行)。达上限后停止追加,并在页脚标注省略数。
* 按 skill 粒度截断,不拆单条。传 `Infinity` 表示不限制。默认 4000。
*/
maxChars?: number;
}
export declare function renderAvailableSkills(skills: readonly SkillDefinition[], options?: RenderAvailableSkillsOptions): string;