/**
 * Built-in skill tools.
 *
 * Two factories, mirroring the two disclosure levels:
 *
 * createSkillTools — instance tools registered once at construction:
 *   list_skills (lightweight catalog) plus the gated skill_create /
 *   skill_update / skill_delete mutation tools.
 *
 * createSkillCallTools — per-call tools injected into options.tools by
 *   prepareGenerate/prepareStream (the RAG-tool pattern): use_skill, whose
 *   description embeds the `<available_skills>` listing so the model
 *   decides from context when a skill applies (no mandatory pre-flight
 *   call), and read_skill_resource for on-demand auxiliary files. The
 *   sessionId rides in by closure, so activations pin to the session
 *   without runtime tool-context plumbing.
 *
 * The manager is resolved lazily via a resolver callback so tools can be
 * registered at construction time while the store initializes on first
 * use (mirrors how retrieve_context resolves conversationMemory lazily).
 */
import type { SkillCallToolsContext, SkillsManagerLike, SkillToolsOptions, Tool } from "../types/index.js";
/**
 * Per-call skill tools: use_skill + read_skill_resource. Injected into
 * options.tools for one generate()/stream() call; same-name entries shadow
 * any registered tool, so the description always reflects this call's
 * listing and scope.
 */
export declare function createSkillCallTools(resolveManager: () => SkillsManagerLike | null, context: SkillCallToolsContext): Record<string, Tool>;
/**
 * Instance skill tools bound to a lazily-resolved manager: list_skills
 * plus the gated mutation tools. Returns Vercel AI SDK tool() objects
 * (description + Zod inputSchema + execute) keyed by tool name.
 */
export declare function createSkillTools(resolveManager: () => SkillsManagerLike | null, options?: SkillToolsOptions): Record<string, Tool>;
