/**
 * Chunker Registry
 *
 * Central registry for all chunking strategies following NeuroLink's registry pattern.
 * Provides factory methods for creating chunker instances.
 */
import type { Chunker, ChunkingStrategy } from "../../types/index.js";
/**
 * Registry for chunking strategies
 * Follows NeuroLink's factory pattern with lazy initialization
 */
export declare class ChunkerRegistry {
    private static chunkers;
    private static initialized;
    /**
     * Initialize all built-in chunkers
     */
    static initialize(): void;
    /**
     * Register a custom chunker
     * @param strategy - Strategy name
     * @param factory - Factory function that creates chunker instance
     */
    static register(strategy: ChunkingStrategy, factory: () => Chunker): void;
    /**
     * Get a chunker by strategy name
     * @param strategy - Chunking strategy name
     * @returns Chunker instance
     * @throws Error if strategy is not registered
     */
    static get(strategy: ChunkingStrategy): Chunker;
    /**
     * Get all available chunking strategies
     * @returns Array of strategy names
     */
    static getAvailableStrategies(): ChunkingStrategy[];
    /**
     * Check if a strategy is registered
     * @param strategy - Strategy name to check
     * @returns True if strategy is registered
     */
    static has(strategy: ChunkingStrategy): boolean;
    /**
     * Get strategy recommendation based on content type
     * @param contentType - Document type or MIME type
     * @returns Recommended chunking strategy
     */
    static getRecommendedStrategy(contentType: string): ChunkingStrategy;
    /**
     * Get default configuration for a strategy
     * @param strategy - Chunking strategy
     * @returns Default configuration object
     */
    static getDefaultConfig(strategy: ChunkingStrategy): Record<string, unknown>;
    /**
     * Reset the registry (useful for testing)
     */
    static reset(): void;
}
/**
 * Convenience function to chunk text with a given strategy
 * @param text - Text to chunk
 * @param strategy - Chunking strategy (default: "recursive")
 * @param config - Strategy-specific configuration
 * @returns Array of chunks
 */
export declare function chunkText(text: string, strategy?: ChunkingStrategy, config?: Record<string, unknown>): Promise<import("../index.js").Chunk[]>;
