import type { AgentTool } from "@dreb/agent-core";
import { type Static } from "@sinclair/typebox";
import type { ToolDefinition } from "../extensions/types.js";
import type { Skill } from "../skills.js";
declare const skillSchema: import("@sinclair/typebox").TObject<{
    skill: import("@sinclair/typebox").TString;
    args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export type SkillToolInput = Static<typeof skillSchema>;
export interface SkillToolDetails {
    skillName: string;
    found: boolean;
    warned: boolean;
    error?: string;
}
export interface SkillToolOptions {
    /** Returns the current list of loaded skills. Called on each invocation so reloads are reflected. */
    getSkills: () => Skill[];
    /** Returns the current session ID for ${DREB_SESSION_ID} substitution. Called on each invocation so session rotations are reflected. */
    getSessionId: () => string;
}
export declare function expandSkillContent(skill: Skill, args: string, sessionId: string): string;
export declare function createSkillToolDefinition(_cwd: string, options: SkillToolOptions): ToolDefinition<typeof skillSchema, SkillToolDetails>;
export declare function createSkillTool(cwd: string, options: SkillToolOptions): AgentTool<typeof skillSchema>;
export {};
//# sourceMappingURL=skill.d.ts.map