/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type SubagentConfig } from '../config/types.js';
import { ProfileManager } from './profileManager.js';
/**
 * Manages subagent configuration files in ~/.llxprt/subagents/
 *
 * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
 * @requirement:REQ-002
 *
 * Pattern: Follows ProfileManager design
 * Storage: JSON files in baseDir directory
 * Naming: <name>.json
 */
export declare class SubagentManager {
    private readonly baseDir;
    private readonly profileManager;
    /**
     * @param baseDir Directory where subagent configs are stored (e.g., ~/.llxprt/subagents/)
     * @param profileManager ProfileManager instance for validation
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 1-8
     */
    constructor(baseDir: string, profileManager: ProfileManager);
    /**
     * Save or update a subagent configuration
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 61-128
     */
    saveSubagent(name: string, profile: string, systemPrompt: string): Promise<void>;
    /**
     * Load a subagent configuration from disk
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 129-180
     */
    loadSubagent(name: string): Promise<SubagentConfig>;
    /**
     * List all subagent names
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 181-209
     */
    listSubagents(): Promise<string[]>;
    /**
     * Delete a subagent configuration
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 210-236
     *
     * @returns true if deleted, false if not found
     */
    deleteSubagent(name: string): Promise<boolean>;
    /**
     * Check if a subagent configuration exists
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 237-262
     */
    subagentExists(name: string): Promise<boolean>;
    /**
     * Validate that a profile exists in ProfileManager
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 263-281
     */
    validateProfileReference(profileName: string): Promise<boolean>;
    /**
     * Get full path to subagent config file
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 9-43
     */
    private getSubagentPath;
    /**
     * Ensure subagent directory exists, create if not
     *
     * @plan:PLAN-20250117-SUBAGENTCONFIG.P05
     * @requirement:REQ-002
     * @pseudocode SubagentManager.md lines 45-60
     */
    private ensureDirectory;
}
