/** * Filter to identify and reject low-quality code chunks * Prevents indexing trivial/boilerplate chunks that pollute search results */ import type { CodeBlock } from '../types/models.js'; export interface ChunkQualityMetrics { isHighQuality: boolean; score: number; reasons: string[]; } /** * Analyzes chunk quality to filter out trivial/boilerplate content */ export declare class ChunkQualityFilter { private readonly MIN_QUALITY_SCORE; private readonly CLOSING_TAG_THRESHOLD; /** * Determine if a chunk is high enough quality to index */ isHighQuality(block: CodeBlock): boolean; /** * Analyze chunk quality with detailed scoring */ analyzeQuality(block: CodeBlock): ChunkQualityMetrics; /** * Calculate ratio of meaningful content vs whitespace/syntax */ private getMeaningfulContentRatio; /** * Calculate character diversity (unique chars / total chars) */ private getCharacterDiversity; /** * Count meaningful tokens (identifiers, keywords, strings) */ private countMeaningfulTokens; /** * Check if chunk is just closing tags/braces */ private isJustClosingTags; /** * Get quality bonus based on block type */ private getTypeQualityBonus; /** * Get quality score based on code length */ private getLengthQualityScore; /** * Get statistics about filtered chunks */ getFilterStats(blocks: CodeBlock[]): { total: number; filtered: number; kept: number; averageScore: number; }; } export declare const chunkQualityFilter: ChunkQualityFilter; //# sourceMappingURL=chunk-quality-filter.d.ts.map