import { AgentCapability } from "@myycontext/core/src/types/agent-orchestration";
/**
 * Agent match result
 */
export interface AgentMatch {
    agentType: string;
    capability: AgentCapability;
    score: number;
    reason: string;
}
/**
 * Agent Registry
 *
 * Central marketplace for agent discovery and capability matching.
 * Answers: "Which agent can handle this task?"
 */
export declare class AgentRegistry {
    private capabilities;
    private taskMap;
    private registryPath;
    constructor(baseDir?: string);
    /**
     * Initialize: Load persisted registry
     */
    init(): Promise<void>;
    /**
     * Register an agent capability
     */
    register(capability: AgentCapability): void;
    /**
     * Unregister an agent
     */
    unregister(agentType: string): boolean;
    /**
     * Find agents that can handle a specific task
     */
    findAgentsFor(taskType: string, options?: {
        minScore?: number;
        maxResults?: number;
        requireParallelizable?: boolean;
    }): AgentMatch[];
    /**
     * Get best agent for a task
     */
    getBestAgentFor(taskType: string): AgentMatch | null;
    /**
     * Get capability for agent type
     */
    getCapability(agentType: string): AgentCapability | undefined;
    /**
     * List all registered agents
     */
    listAll(): AgentCapability[];
    /**
     * List agents by tag
     */
    listByTag(tag: string): AgentCapability[];
    /**
     * List agents that can run in parallel
     */
    listParallelizable(): AgentCapability[];
    /**
     * Search agents
     */
    search(query: string): AgentCapability[];
    /**
     * Get statistics
     */
    getStats(): {
        totalAgents: number;
        parallelizableAgents: number;
        totalTaskTypes: number;
        averageContextBudgetKB: number;
        agentsByPriority: Record<string, number>;
    };
    /**
     * Validate registry consistency
     */
    validate(): {
        valid: boolean;
        errors: string[];
    };
    /**
     * Calculate match score
     */
    private calculateMatchScore;
    /**
     * String similarity (simple Levenshtein-based)
     */
    private stringSimilarity;
    /**
     * Levenshtein distance
     */
    private levenshteinDistance;
    /**
     * Bootstrap default agent capabilities
     */
    private bootstrapDefaults;
    /**
     * Persist registry to disk
     */
    private persist;
}
//# sourceMappingURL=AgentRegistry.d.ts.map