/**
 * Chunker Registry
 *
 * Centralized registry for all chunking strategies with metadata
 * and discovery capabilities. Follows the BaseRegistry pattern.
 */
import { BaseRegistry } from "../core/infrastructure/index.js";
import type { Chunker, ChunkerConfig, ChunkerMetadata, ChunkingStrategy } from "../types/index.js";
/**
 * Chunker Registry
 *
 * Manages registration and discovery of all chunking strategies.
 * Extends BaseRegistry for consistent lifecycle management.
 */
export declare class ChunkerRegistry extends BaseRegistry<Chunker, ChunkerMetadata> {
    private static instance;
    private aliasMap;
    private constructor();
    /**
     * Get singleton instance
     */
    static getInstance(): ChunkerRegistry;
    /**
     * Reset singleton (for testing)
     */
    static resetInstance(): void;
    /**
     * Register all default chunkers
     */
    protected registerAll(): Promise<void>;
    /**
     * Register a chunker with aliases
     */
    registerChunker(strategy: ChunkingStrategy | string, factory: () => Promise<Chunker>, metadata: ChunkerMetadata): void;
    /**
     * Resolve strategy name from alias
     */
    resolveStrategy(nameOrAlias: string): ChunkingStrategy;
    /**
     * Get a chunker by strategy name or alias
     */
    getChunker(strategyOrAlias: string): Promise<Chunker>;
    /**
     * Get list of available chunker strategies
     */
    getAvailableChunkers(): Promise<ChunkingStrategy[]>;
    /**
     * Get metadata for a specific chunker
     */
    getChunkerMetadata(strategyOrAlias: string): ChunkerMetadata | undefined;
    /**
     * Get all aliases for a strategy
     */
    getAliasesForStrategy(strategy: ChunkingStrategy): string[];
    /**
     * Get all registered aliases
     */
    getAllAliases(): Map<string, ChunkingStrategy>;
    /**
     * Check if a strategy or alias exists
     */
    hasChunker(strategyOrAlias: string): boolean;
    /**
     * Get chunkers by use case
     */
    getChunkersByUseCase(useCase: string): ChunkingStrategy[];
    /**
     * Get default configuration for a chunker
     */
    getDefaultConfig(strategyOrAlias: string): ChunkerConfig | undefined;
    /**
     * Clear the registry (also clears aliases)
     */
    clear(): void;
}
/**
 * Global chunker registry singleton
 */
export declare const chunkerRegistry: ChunkerRegistry;
/**
 * Convenience function to get available chunkers
 */
export declare function getAvailableChunkers(): Promise<ChunkingStrategy[]>;
/**
 * Convenience function to get chunker by strategy
 */
export declare function getChunker(strategyOrAlias: string): Promise<Chunker>;
/**
 * Convenience function to get chunker metadata
 */
export declare function getChunkerMetadata(strategyOrAlias: string): ChunkerMetadata | undefined;
