/**
 * CustomAgentLoader - Load custom agents from ~/.codebuddy/agents/
 *
 * Allows users to define custom AI agents with specific:
 * - System prompts
 * - Tool configurations
 * - Model preferences
 * - Behavior settings
 *
 * Inspired by Mistral Vibe CLI's custom agents feature.
 */
export interface CustomAgentConfig {
    /** Unique agent identifier (derived from filename) */
    id: string;
    /** Display name */
    name: string;
    /** Description of what this agent does */
    description: string;
    /** System prompt for the agent */
    systemPrompt: string;
    /** Model to use (optional, defaults to current model) */
    model?: string;
    /** Tools this agent can use (empty = all tools) */
    tools?: string[];
    /** Tools this agent cannot use */
    disabledTools?: string[];
    /** Temperature for responses (0-2) */
    temperature?: number;
    /** Maximum tokens for response */
    maxTokens?: number;
    /** Whether to stream responses */
    streaming?: boolean;
    /** Custom variables that can be used in prompts */
    variables?: Record<string, string>;
    /** Trigger words that auto-activate this agent */
    triggers?: string[];
    /** Tags for organization */
    tags?: string[];
    /** Author information */
    author?: string;
    /** Version */
    version?: string;
}
export interface CustomAgentFile {
    /** File path */
    path: string;
    /** File format */
    format: 'toml' | 'yaml' | 'json';
    /** Parsed configuration */
    config: CustomAgentConfig;
    /** Last modified time */
    modifiedAt: Date;
}
export declare class CustomAgentLoader {
    private agentsDir;
    private cache;
    private lastScan;
    private scanInterval;
    constructor(agentsDir?: string);
    /**
     * Ensure the agents directory exists and has example
     */
    private ensureAgentsDirectoryAsync;
    /**
     * Ensure the agents directory exists and has example (sync for constructor)
     */
    private ensureAgentsDirectory;
    /**
     * Load all agents from the agents directory (async version)
     */
    loadAgentsAsync(): Promise<CustomAgentFile[]>;
    /**
     * Load all agents from the agents directory (sync version for backwards compatibility)
     */
    loadAgents(): CustomAgentFile[];
    /**
     * Parse an agent configuration file (async version)
     */
    private parseAgentFileAsync;
    /**
     * Parse an agent configuration file (sync version)
     */
    private parseAgentFile;
    /**
     * Parse agent content (shared logic)
     */
    private parseAgentContent;
    /**
     * Simple YAML parser for basic key-value pairs and multiline strings
     */
    private parseSimpleYaml;
    /**
     * Get an agent by ID
     */
    getAgent(id: string): CustomAgentConfig | null;
    /**
     * Find agents by trigger word
     */
    findByTrigger(input: string): CustomAgentConfig[];
    /**
     * List all available agents
     */
    listAgents(): CustomAgentConfig[];
    /**
     * Create a new agent from template
     */
    createAgent(name: string, description: string, systemPrompt: string): string;
    /**
     * Format agent list for display
     */
    formatAgentList(): string;
}
export declare function getCustomAgentLoader(): CustomAgentLoader;
export declare function resetCustomAgentLoader(): void;
