import type { AgentSpec } from './spec';
import { SpecContractRegistry } from '@contractspec/lib.contracts-spec/registry';
/**
 * Registry for managing agent specifications.
 *
 * Provides registration, lookup, and version management for agent specs.
 */
export declare class AgentRegistry extends SpecContractRegistry<'agent', AgentSpec> {
    constructor(items?: AgentSpec[]);
    /**
     * List all unique agent names (without versions).
     */
    listNames(): string[];
    /**
     * Get an agent specification or throw if not found.
     *
     * @param name - Agent name
     * @param version - Optional version
     * @returns The agent spec
     * @throws Error if the spec is not found
     */
    require(name: string, version?: string): AgentSpec;
    /**
     * Check if an agent is registered.
     *
     * @param name - Agent name
     * @param version - Optional version
     */
    has(name: string, version?: string): boolean;
    /**
     * Get all versions of an agent.
     *
     * @param name - Agent name
     * @returns Array of specs sorted by version (ascending)
     */
    getVersions(name: string): AgentSpec[];
}
/**
 * Create a new agent registry.
 */
export declare function createAgentRegistry(): AgentRegistry;
