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;