/**
 * Skill Tools — Factory
 *
 * Creates the built-in skill tools for agents. These tools let the model
 * discover and read skill instructions on demand.
 *
 * Design: stateless. The `skill` tool returns the full skill instructions
 * in its tool result — no activation state tracking needed. Instructions
 * persist naturally in conversation history. If context gets compacted,
 * the model just calls the tool again.
 */
import type { Skill, WorkspaceSkills } from './types.js';
/**
 * Create all skill tools for a workspace with skills.
 * Returns an empty object if the workspace has no skills.
 *
 * Tools are added at the Agent level (like workspace tools), not inside
 * a processor, to avoid losing tool execute functions on serialization.
 */
export declare function createSkillTools(skills: WorkspaceSkills): {
    skill: import("../../tools").Tool<{
        name: string;
    }, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "skill", unknown>;
    skill_search: import("../../tools").Tool<{
        query: string;
        skillNames?: string[] | undefined;
        topK?: number | undefined;
    }, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "skill_search", unknown>;
    skill_read: import("../../tools").Tool<{
        skillName: string;
        path: string;
        startLine?: number | undefined;
        endLine?: number | undefined;
    }, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "skill_read", unknown>;
};
/**
 * Format a skill into the activation payload: instructions followed by
 * any references/scripts/assets listings. Shared between the `skill` tool
 * and explicit user activations so both paths produce identical output.
 */
export declare function formatSkillActivation(skill: Skill): string;
//# sourceMappingURL=tools.d.ts.map