import { AgentConfig } from './agent-config';
/**
 * Manager for agent configurations
 * Handles CRUD operations for agent configurations stored in the agents directory
 */
export declare class AgentManager {
    private agentsDir;
    private toolManager;
    constructor();
    /**
     * List all available agent configurations
     * @returns Array of agent configuration names
     */
    listAgents(): Promise<string[]>;
    /**
     * Get a specific agent configuration
     * @param name Agent configuration name
     * @returns Agent configuration object
     * @throws Error if agent configuration not found or invalid
     */
    getAgent(name: string): Promise<AgentConfig>;
    /**
     * Create a new agent configuration
     * @param name Agent configuration name
     * @param config Agent configuration object
     * @throws Error if agent configuration already exists or is invalid
     */
    createAgent(name: string, config: AgentConfig): Promise<void>;
    /**
     * Update an existing agent configuration
     * @param name Agent configuration name
     * @param updates Agent configuration updates
     * @throws Error if agent configuration not found or is invalid
     */
    updateAgent(name: string, updates: Partial<AgentConfig>): Promise<void>;
    /**
     * Delete an agent configuration
     * @param name Agent configuration name
     * @throws Error if agent configuration not found
     */
    deleteAgent(name: string): Promise<void>;
    /**
     * Validate tool references in an agent configuration
     * @param tools Array of tool names
     * @throws Error if a referenced tool doesn't exist (except for 'hataraku')
     */
    private validateToolReferences;
    /**
     * Initialize default agent configurations
     * Creates default agent configurations if they don't exist
     */
    initializeDefaults(): Promise<void>;
    /**
     * Resolve tool references for an agent
     * Converts tool references to actual tool configurations
     * @param name Agent name
     * @returns Agent with resolved tool configurations
     * @throws Error if agent configuration not found
     */
    resolveAgentTools(name: string): Promise<AgentConfig & {
        resolvedTools: string[];
    }>;
}
