/**
 * Skill wiring for the OpenRouter adapter.
 *
 * The OR library exposes skills to the model as a single `skill({ name,
 * arguments? })` tool plus a `## Available Skills` listing injected into the
 * system instructions. It normally wires both into its OWN default tool bundle —
 * which callboard bypasses by always supplying a custom `tools` array. So we
 * reconstruct the two halves here against the standalone library exports:
 *
 * - {@link createSkillLoader} — discovers project (`<cwd>/.claude/skills/`),
 *   user (`~/.claude/skills/`), and plugin skill roots. Plugin roots come from
 *   the {@link LoadedPlugin} records resolved in {@link pluginAdapter}; we mirror
 *   the library's own assembly (agent.ts `resolveSkillLoader`) — one entry per
 *   `plugin.skillRoots` element, namespaced by the plugin name.
 * - {@link skillTool} — the standalone factory. Appended to callboard's custom
 *   `tools` array so the model can actually invoke skills.
 * - {@link buildSkillListing} — produces the `## Available Skills` block within
 *   the {@link DEFAULT_SKILL_DESCRIPTION_BUDGET} budget; injected into the run's
 *   instructions and parsed back into `visibleNames` for the tool description.
 *
 * `context: fork` skills are NOT wired to a subagent runner here (callboard
 * supplies custom tools, so no SubagentRunner is in scope). The library's
 * skillTool gracefully degrades — it inlines the rendered body and tags the
 * result with an `error` note rather than forking. Full fork support under OR
 * is a follow-up.
 */
import { type LoadedPlugin, type SkillLoader } from "@wolpertingerlabs/openrouter-agent-harness";
import type { EffortLevel, OrTool } from "./optionsAdapter.js";
import type { OrAdapterLogger } from "./pluginAdapter.js";
/** Context the skill `buildContext` closure needs to render a skill body. */
export interface SkillRenderContext {
    sessionId: string;
    cwd: string;
    signal?: AbortSignal;
    effort?: EffortLevel;
}
export interface SkillSupport {
    /** Shared loader — also handed to the command loader for converged listing. */
    loader: SkillLoader;
    /** The `skill` tool to append to the custom tools array. */
    tool: OrTool;
    /** `## Available Skills` block to inject into instructions ("" when empty). */
    listing: string;
}
/**
 * Build the OR `skill` tool + listing for a run, or `null` when no skills are
 * discoverable (no project/user/plugin skills) so the caller can skip wiring.
 */
export declare function buildSkillSupport(loadedPlugins: readonly LoadedPlugin[], render: SkillRenderContext, logger?: OrAdapterLogger): Promise<SkillSupport | null>;
//# sourceMappingURL=skillAdapter.d.ts.map