/**
 * SKILL.md → opensquid native codex converter (v0.6d).
 *
 * Pure functions. No filesystem side effects. Takes a raw SKILL.md
 * string + optional path metadata, returns a `{codex, lesson}` pair
 * that the install pipeline materializes to disk before calling the
 * existing `installCodex` + `copyCodexContent` path.
 *
 * Handles the union of:
 * - Anthropic skills (https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) — `name`, `description`, optional `license`, optional experimental `allowed-tools` / `model` / `compatibility`
 * - obra/superpowers — strict Anthropic subset (name + description, CSO description discipline)
 * - everything-claude-code (ECC) — Anthropic + non-standard `origin: ECC`
 * - Hermes Agent skills (~/projects/hermes-agent/skills/) — Anthropic + `version` + `author` + `platforms` + `metadata.hermes.{tags, related_skills}`
 *
 * 100% deterministic. No LLM call. Per [[find-simple-solutions]]:
 * frontmatter → codex.yaml is structural mapping; body → one lesson is
 * the trivial 1:1 case that every sampled SKILL.md follows. Sub-skill
 * body-splitting is deferred until a real corpus demands it.
 */
import type { Codex, CodexSource } from "./types.js";
export type SkillMdVariant = NonNullable<CodexSource["original_variant"]>;
export interface SkillMdParseResult {
    frontmatter: Record<string, unknown>;
    body: string;
}
export interface ConvertOptions {
    /** Absolute path to the source SKILL.md (or its containing dir). */
    originalPath?: string;
    /** Wall-clock at conversion time. Defaults to `new Date().toISOString()`. */
    now?: string;
}
export interface ConvertedLesson {
    /** Lesson id (slug). */
    id: string;
    /** Path relative to the codex root — written via `lessons/<id>/lesson.md`. */
    bodyPath: string;
    /** Raw markdown body to write at `bodyPath`. */
    body: string;
}
export interface ConvertedCodex {
    codex: Codex;
    lessons: ConvertedLesson[];
    variant: SkillMdVariant;
}
export declare class SkillMdImportError extends Error {
    readonly hint?: string | undefined;
    constructor(message: string, hint?: string | undefined);
}
export declare function parseSkillMd(source: string): SkillMdParseResult;
export declare function slugify(name: string): string;
export declare function detectVariant(frontmatter: Record<string, unknown>, originalPath?: string): SkillMdVariant;
export declare function convertSkillMdToCodex(source: string, options?: ConvertOptions): ConvertedCodex;
//# sourceMappingURL=import-skill-md.d.ts.map