/**
 * Skill Manager - Manages skills loading and expansion
 *
 * Handles skill initialization, reloading, and command expansion.
 */
import { type Skill } from './index.js';
export interface SkillDiagnostic {
    type: 'collision' | 'warning' | 'error' | 'info';
    skillName: string;
    message: string;
}
export interface SkillLoadResult {
    skills: Skill[];
    prompt: string;
    diagnostics: SkillDiagnostic[];
}
export declare class SkillManager {
    private skillPrompt;
    private skills;
    private skillLoader;
    private workspace;
    private bundledSkillsDir;
    constructor(workspace: string, bundledSkillsDir?: string);
    /**
     * Initialize skills from workspace and bundled directories
     */
    private initialize;
    /**
     * Recompute skill XML prompt from current skills.json (no disk rescan).
     */
    refreshPromptFromConfig(): void;
    /**
     * Reload skills from disk
     */
    reload(): void;
    /**
     * Get the skill prompt to append to system prompt
     */
    getPrompt(): string;
    /**
     * `<available_skills>` XML with optional per-agent allowlist and/or tool-based gating.
     * When both arguments are omitted, returns the cached prompt from disk load (no tool gating).
     */
    getPromptForSkillAllowlist(allowlist: string[] | undefined, registeredToolNames?: string[]): string;
    /** Skills visible for prompts and skills_list given the same indexing options as {@link getPromptForSkillAllowlist}. */
    selectSkillsForAgentIndexing(options?: {
        skillAllowlist?: string[];
        registeredToolNames?: string[];
    }): Skill[];
    /**
     * Get all loaded skills
     */
    getSkills(): Skill[];
    /**
     * Get skill names
     */
    getSkillNames(): string[];
    /** Names of skills included in the agent system prompt (`<available_skills>`). */
    getSkillNamesForPrompt(): string[];
    /**
     * Skills that are enabled for model discovery (respects skills.json and requirement checks).
     */
    getEnabledSkills(): Skill[];
    /**
     * Like {@link getEnabledSkills} plus optional allowlist and tool gating (matches `<available_skills>`).
     */
    getEnabledSkillsForAgentSession(options?: {
        skillAllowlist?: string[];
        registeredToolNames?: string[];
    }): Skill[];
    /**
     * Find a skill by name
     */
    findSkill(name: string): Skill | undefined;
    /**
     * Check if a skill exists
     */
    hasSkill(name: string): boolean;
    /**
     * Expand a skill command into a full skill block
     */
    expandCommand(text: string): string;
    /**
     * Parse a /skill: command
     */
    private parseSkillCommand;
    /**
     * Build a skill block for inclusion in the prompt
     */
    private buildSkillBlock;
}
