/**
 * Skill Injector — shares qlogicagent skills with external ACP agents.
 *
 * Two injection methods:
 *
 * 1. **Native skill directory sync**: For agents that support a `skillsDirs`
 *    convention (e.g. `.claude/skills/`), create symlinks or copies of
 *    qlogicagent's optional skills into the agent's native directory.
 *
 * 2. **First-message prompt injection**: For agents without native skill
 *    directory support, prepend skill instructions text to the first prompt.
 *    Subject to a token budget to prevent context bloat.
 */
import type { AgentCapabilities } from "../../protocol/wire/acp-agent-management.js";
import { SKILL_INJECTION_MAX_CHARS, SKILL_INJECTION_MAX_COUNT } from "../config/tunable-defaults.js";
export { SKILL_INJECTION_MAX_CHARS, SKILL_INJECTION_MAX_COUNT };
export declare function isSystemGeneratedSkillName(name: string): boolean;
export declare class SkillInjector {
    /**
     * Synchronize skills to an agent's native skill directory.
     * Creates symlinks where possible; falls back to file copy.
     *
     * @param targetDir - Agent's native skill directory (e.g. `<cwd>/.claude/skills/`)
     * @param cwd - Project working directory (for project-level skills)
     */
    syncSkillsToDir(targetDir: string, cwd?: string): void;
    /**
     * Build a skill description block to prepend to the first message
     * for agents that don't support native skill directories.
     *
     * Respects SKILL_INJECTION_MAX_CHARS and SKILL_INJECTION_MAX_COUNT
     * to prevent token bloat.
     *
     * @param cwd - Project working directory (for project-level skills)
     * @returns Markdown text with skill instructions, or empty string if no skills.
     */
    buildPromptWithSkills(cwd?: string): string;
    /**
     * Determine the injection method for an agent.
     *
     * @param capabilities - Agent's discovered capabilities
     * @returns "native" if agent has skillsDirs, "prompt" otherwise
     */
    getInjectionMethod(capabilities?: AgentCapabilities): "native" | "prompt";
    /**
     * Apply skills to an agent based on its capabilities.
     *
     * @param capabilities - Agent's discovered capabilities
     * @param cwd - Project working directory
     * @returns Skill prompt text (for "prompt" method) or empty string (for "native" method)
     */
    applySkills(capabilities?: AgentCapabilities, cwd?: string): string;
    /**
     * Collect all skill file paths from project-level and user-level dirs.
     * Skills are stored as `<dir>/<skillName>/SKILL.md`.
     * Priority: project > global (project listed first for budget-constrained injection).
     */
    private collectSkillPaths;
}
