/**
 * OwlCoda Native Skill Tool
 *
 * Dispatches on `action`:
 *   - list           → enumerate available skills (no `name` required)
 *   - info / show    → return metadata for one skill (`name` required)
 *   - run / get      → return the skill prompt body (`name` required)
 *
 * Single source of truth for skill registry: `src/skills/store.ts`'s
 * `loadAllSkills()`, which merges curated skills (project's `skills/`) and
 * learned skills (`~/.owlcoda/skills/`). Before 0.13.35 this tool walked
 * `.owlcoda/skills/` and `~/.owlcoda/skills/` directly and never saw the
 * curated library, so the `/skills` slash command would report e.g.
 * "64 curated skills available" while `Skill list` returned empty —
 * truth surface drift. The tool now reads the same registry the slash
 * command reads.
 *
 * Backwards compatible with the legacy `{ skill: '<name>' }` shape — when
 * neither `action` nor `name` is given but `skill` is, behave as
 * `{ action: 'run', name: <skill> }`.
 */
import type { NativeToolDef } from './types.js';
export type SkillAction = 'list' | 'run' | 'info' | 'get' | 'show';
export interface SkillInput {
    action?: SkillAction | string;
    name?: string;
    /** Legacy shorthand — equivalent to `{ action: 'run', name: skill }`. */
    skill?: string;
    /** Args passed through to the skill (currently unused, reserved). */
    args?: Record<string, unknown>;
}
export declare function createSkillTool(_cwd?: string): NativeToolDef<SkillInput>;
