/**
 * Code Chunker
 *
 * Intelligently chunks code files into semantic units for embedding.
 * Respects code structure (functions, classes, methods) to maintain context.
 *
 * Based on research from:
 * - RAG for Large Scale Code Repos (Qodo)
 * - Code-specific chunking strategies
 */
import { CodeChunk, RAGConfig } from "./types.js";
/**
 * Detect language from file path
 */
export declare function detectLanguage(filePath: string): string;
/**
 * Code Chunker class
 */
export declare class CodeChunker {
    private config;
    constructor(config?: Partial<RAGConfig>);
    /**
     * Chunk a file into semantic code chunks
     */
    chunkFile(content: string, filePath: string): CodeChunk[];
    /**
     * Chunk respecting code boundaries (functions, classes, etc.)
     */
    private chunkWithBoundaries;
    /**
     * Find all symbols in the content
     */
    private findSymbols;
    /**
     * Find pattern matches and add to symbols
     */
    private findPattern;
    /**
     * Find where a symbol ends (matching braces)
     */
    private findSymbolEnd;
    /**
     * Find docstring before a symbol
     */
    private findDocstring;
    /**
     * Chunk by size (fallback method)
     */
    private chunkBySize;
    /**
     * Split a large chunk into smaller ones
     */
    private splitLargeChunk;
    /**
     * Create a chunk object
     */
    private createChunk;
    /**
     * Check if code is public/exported
     */
    private isPublic;
    /**
     * Check if function is async
     */
    private isAsync;
    /**
     * Estimate token count for text
     */
    private estimateTokens;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<RAGConfig>): void;
    /**
     * Get current configuration
     */
    getConfig(): RAGConfig;
}
/**
 * Create a chunker instance
 */
export declare function createChunker(config?: Partial<RAGConfig>): CodeChunker;
