export interface CompressionResult {
    compressed: string;
    originalSize: number;
    compressedSize: number;
    compressionRatio: number;
    removedSections: string[];
    retainedSections: string[];
    retentionStats?: {
        codeRetentionPercent: number;
        answerRetentionPercent: number;
        questionRetentionPercent: number;
    };
}
export interface ChunkScore {
    text: string;
    score: number;
    type: 'code' | 'explanation' | 'question' | 'answer' | 'metadata';
    keywords: string[];
}
export declare class ContextCompressor {
    private static readonly MAX_CHUNK_SIZE;
    private static readonly DEFAULT_TARGET_TOKENS;
    private static readonly TOKENS_PER_CHAR_ESTIMATE;
    private static readonly MAX_SCORE;
    private static readonly MIN_SCORE;
    private static readonly CODE_KEYWORDS;
    private static readonly IMPORTANT_KEYWORDS;
    /**
     * Compress context by selecting most important chunks
     * @param context - Text content to compress
     * @param targetTokens - Target token count (default: 4000)
     * @returns Compression result with statistics
     */
    static compress(context: string, targetTokens?: number): CompressionResult;
    /**
     * Calculate retention percentages by type
     */
    private static calculateRetentionStats;
    /**
     * Split context into manageable chunks
     */
    private static splitIntoChunks;
    /**
     * Score chunk importance (0-100)
     * @param text - Text chunk to score
     * @returns Scored chunk with type and keywords
     */
    private static scoreChunk;
    /**
     * Detect chunk type based on content
     */
    private static detectChunkType;
    /**
     * Extract important keywords from text
     */
    private static extractKeywords;
    /**
     * Calculate base score for chunk
     */
    private static calculateBaseScore;
    /**
     * Get score based on chunk type
     */
    private static getTypeScore;
    /**
     * Get score for important keywords
     */
    private static getKeywordScore;
    /**
     * Get score based on text structure
     */
    private static getStructureScore;
    /**
     * Summarize removed chunk (one-liner)
     */
    private static summarizeChunk;
    /**
     * Reconstruct compressed context
     */
    private static reconstructContext;
    /**
     * Extract key entities (names, numbers, dates) from context
     */
    static extractKeyEntities(context: string): {
        names: string[];
        numbers: string[];
        dates: string[];
        files: string[];
    };
    /**
     * Estimate token count (rough approximation)
     */
    static estimateTokens(text: string): number;
}
//# sourceMappingURL=ContextCompressor.d.ts.map