/**
 * Registry HTTP Client
 *
 * Fetches instance factory metadata from the SpecVerse Registry API.
 * Uses Node.js 18+ built-in fetch with retry logic and timeout handling.
 *
 * @module registry/client/registry-client
 * @version 2.0.0
 */
import type { RegistryResponse, RegistryFactoryMetadata, SearchResponse, CapabilitiesResponse, FetchFactoriesOptions, SearchFactoriesOptions } from '../types/registry.js';
/**
 * Registry client configuration
 */
export interface RegistryClientConfig {
    /** Registry API endpoint */
    endpoint: string;
    /** Request timeout in milliseconds */
    timeout: number;
    /** Number of retry attempts */
    retries: number;
    /** User agent string */
    userAgent?: string;
}
/**
 * Registry HTTP Client
 *
 * Handles communication with the SpecVerse Registry API to fetch
 * instance factory metadata.
 */
export declare class RegistryClient {
    private config;
    constructor(config?: Partial<RegistryClientConfig>);
    /**
     * Fetch all instance factory metadata
     *
     * @param options - Query options for filtering
     * @returns Registry response with factory metadata
     */
    fetchFactories(options?: FetchFactoriesOptions): Promise<RegistryResponse>;
    /**
     * Get specific factory metadata by name
     *
     * @param name - Factory name (e.g., "PrismaPostgres")
     * @returns Factory metadata or null if not found
     */
    getFactory(name: string): Promise<RegistryFactoryMetadata | null>;
    /**
     * Search factories with fuzzy matching
     *
     * @param query - Search query string
     * @param options - Search options
     * @returns Search results with scores
     */
    search(query: string, options?: SearchFactoriesOptions): Promise<SearchResponse>;
    /**
     * Get all capabilities with factory counts
     *
     * @returns Capabilities response
     */
    getCapabilities(): Promise<CapabilitiesResponse>;
    /**
     * Check if registry is accessible
     *
     * @returns True if registry is reachable
     */
    checkHealth(): Promise<boolean>;
    /**
     * Fetch with automatic retry and exponential backoff
     *
     * @param url - URL to fetch
     * @param attempt - Current attempt number
     * @returns Response object
     */
    private fetchWithRetry;
    /**
     * Delay helper for retry backoff
     *
     * @param ms - Milliseconds to delay
     */
    private delay;
    /**
     * Transform registry API response to internal format
     *
     * Handles differences between registry API format and internal types.
     *
     * @param data - Raw API response
     * @returns Transformed registry response
     */
    private transformResponse;
    /**
     * Transform single factory from API format to internal format
     *
     * @param lib - Raw library/factory data from API
     * @returns Transformed factory metadata
     */
    private transformFactory;
    /**
     * Get the configured endpoint URL
     */
    getEndpoint(): string;
    /**
     * Update client configuration
     *
     * @param config - Partial config to merge
     */
    updateConfig(config: Partial<RegistryClientConfig>): void;
}
/**
 * Registry fetch error
 *
 * Thrown when registry API requests fail.
 */
export declare class RegistryFetchError extends Error {
    cause?: any;
    constructor(message: string, cause?: any);
    /**
     * Check if error is due to network issues
     */
    isNetworkError(): boolean;
    /**
     * Check if error is due to timeout
     */
    isTimeout(): boolean;
    /**
     * Get user-friendly error message
     */
    getUserMessage(): string;
}
//# sourceMappingURL=registry-client.d.ts.map