/**
 * Reranker Registry
 *
 * Centralized registry for all reranker implementations with metadata
 * and discovery capabilities. Follows the BaseRegistry pattern.
 */
import { BaseRegistry } from "../../core/infrastructure/index.js";
import type { Reranker, RerankerConfig, RerankerMetadata, RerankerType } from "../../types/index.js";
/**
 * Reranker Registry
 *
 * Manages registration and discovery of all reranker implementations.
 * Extends BaseRegistry for consistent lifecycle management.
 */
export declare class RerankerRegistry extends BaseRegistry<Reranker, RerankerMetadata> {
    private static instance;
    private aliasMap;
    private constructor();
    /**
     * Get singleton instance
     */
    static getInstance(): RerankerRegistry;
    /**
     * Reset singleton (for testing)
     */
    static resetInstance(): void;
    /**
     * Register all built-in rerankers
     */
    protected registerAll(): Promise<void>;
    /**
     * Create LLM reranker instance wrapper
     */
    private createLLMRerankerInstance;
    /**
     * Create cross-encoder instance wrapper
     */
    private createCrossEncoderInstance;
    /**
     * Create Cohere instance wrapper
     */
    private createCohereInstance;
    /**
     * Create simple reranker instance wrapper
     */
    private createSimpleRerankerInstance;
    /**
     * Create batch reranker instance wrapper
     */
    private createBatchRerankerInstance;
    /**
     * Register a reranker with aliases
     */
    registerReranker(type: RerankerType, factory: () => Promise<Reranker>, metadata: RerankerMetadata): void;
    /**
     * Resolve type from alias
     */
    resolveType(nameOrAlias: string): RerankerType;
    /**
     * Get a reranker by type or alias
     */
    getReranker(typeOrAlias: string): Promise<Reranker>;
    /**
     * Get list of available reranker types
     */
    getAvailableRerankers(): Promise<RerankerType[]>;
    /**
     * Get metadata for a specific reranker
     */
    getRerankerMetadata(typeOrAlias: string): RerankerMetadata | undefined;
    /**
     * Get all aliases for a type
     */
    getAliasesForType(type: RerankerType): string[];
    /**
     * Get all registered aliases
     */
    getAllAliases(): Map<string, RerankerType>;
    /**
     * Check if a type or alias exists
     */
    hasReranker(typeOrAlias: string): boolean;
    /**
     * Get rerankers by use case
     */
    getRerankersByUseCase(useCase: string): RerankerType[];
    /**
     * Get default configuration for a reranker
     */
    getDefaultConfig(typeOrAlias: string): Partial<RerankerConfig> | undefined;
    /**
     * Get rerankers that don't require external APIs
     */
    getLocalRerankers(): RerankerType[];
    /**
     * Get rerankers that don't require AI models
     */
    getModelFreeRerankers(): RerankerType[];
    /**
     * Clear the registry (also clears aliases)
     */
    clear(): void;
}
/**
 * Global reranker registry singleton
 */
export declare const rerankerRegistry: RerankerRegistry;
/**
 * Convenience function to get available rerankers
 */
export declare function getAvailableRerankers(): Promise<RerankerType[]>;
/**
 * Convenience function to get reranker by type
 */
export declare function getReranker(typeOrAlias: string): Promise<Reranker>;
/**
 * Convenience function to get reranker metadata
 */
export declare function getRegisteredRerankerMetadata(typeOrAlias: string): RerankerMetadata | undefined;
