/**
 * Skill document schema — defines the structure of learned skills.
 * Compatible with agentskills.io format and upstream SKILL.md convention.
 */
export interface SkillStep {
    order: number;
    action: string;
    detail?: string;
}
export interface SkillPitfall {
    description: string;
    mitigation: string;
}
export interface SkillVerification {
    check: string;
    expected: string;
}
export interface SkillDocument {
    /** Unique ID (kebab-case, e.g., "fix-eslint-config") */
    id: string;
    /** Human-readable name */
    name: string;
    /** Short description of what this skill handles */
    description: string;
    /** Step-by-step procedure */
    procedure: SkillStep[];
    /** Known pitfalls and how to avoid them */
    pitfalls: SkillPitfall[];
    /** How to verify the skill was applied correctly */
    verification: SkillVerification[];
    /** Tags for matching (e.g., ["typescript", "eslint", "config"]) */
    tags: string[];
    /** When this skill applies (natural language) */
    whenToUse: string;
    /** Session ID this skill was synthesized from (null if manually created) */
    createdFrom?: string;
    /** ISO timestamp */
    createdAt: string;
    /** ISO timestamp */
    updatedAt: string;
    /** How many times this skill has been matched and injected */
    useCount: number;
    /** Synthesis mode used */
    synthesisMode: 'template' | 'llm' | 'manual';
    /** Version number (starts at 1, increments on update) */
    version?: number;
    /** Parent skill ID this evolved from */
    parentId?: string;
    /** Original SKILL.md content for upstream/Claude-style skill packages */
    sourceMarkdown?: string;
}
export interface SkillMetadata {
    id: string;
    name: string;
    description: string;
    tags: string[];
    whenToUse: string;
    useCount: number;
    createdAt: string;
    updatedAt: string;
}
/**
 * Extract metadata from a full skill document.
 */
export declare function toMetadata(skill: SkillDocument): SkillMetadata;
/**
 * Render a skill document as SKILL.md content (upstream-compatible).
 */
export declare function renderSkillMd(skill: SkillDocument): string;
/**
 * Validate a skill ID (kebab-case, 3-80 chars).
 */
export declare function isValidSkillId(id: string): boolean;
/**
 * Generate a skill ID from a name.
 */
export declare function nameToId(name: string): string;
