/**
 * Semantic Compression Module for UAP
 *
 * Implements SimpleMem-style semantic structured compression:
 * 1. Entropy-aware filtering to distill raw content into atomic facts
 * 2. Coreference normalization (entity resolution)
 * 3. Multi-view indexing for efficient retrieval
 *
 * Based on SimpleMem research (2026): 30x token reduction while maintaining F1 scores
 */
export interface AtomicFact {
    content: string;
    entities: string[];
    actionability: number;
    temporality: 'past' | 'present' | 'future' | 'timeless';
    type: 'fact' | 'decision' | 'lesson' | 'pattern' | 'gotcha';
}
export interface SemanticUnit {
    id: string;
    atomicFacts: AtomicFact[];
    entities: string[];
    temporalMarkers: string[];
    sourceTokens: number;
    compressedTokens: number;
    compressionRatio: number;
}
export interface SemanticCompressionConfig {
    maxFactsPerUnit: number;
    minActionability: number;
    minEntropy: number;
    deduplicationThreshold: number;
    preserveHighImportance: boolean;
}
/**
 * Calculate Shannon entropy of text (normalized 0-1)
 * Higher entropy = more information content, less repetition
 * Based on SimpleMem's entropy-aware filtering
 */
export declare function calculateEntropy(text: string): number;
/**
 * Calculate information density (entropy per token)
 * Helps identify high-value content worth preserving
 */
export declare function calculateInformationDensity(text: string): number;
/**
 * Extract atomic facts from raw content
 * Distills verbose content into minimal, self-contained units
 */
export declare function extractAtomicFacts(content: string, minEntropy?: number): AtomicFact[];
/**
 * Create a semantic unit from multiple memories
 */
export declare function createSemanticUnit(memories: Array<{
    content: string;
    importance?: number;
}>, config?: Partial<SemanticCompressionConfig>): SemanticUnit;
/**
 * Serialize semantic unit for storage/display
 */
export declare function serializeSemanticUnit(unit: SemanticUnit): string;
/**
 * Compress batch of memories into semantic units
 * Main entry point for semantic compression
 */
export declare function compressToSemanticUnits(memories: Array<{
    content: string;
    type: string;
    importance?: number;
    timestamp?: string;
}>, config?: Partial<SemanticCompressionConfig>): {
    units: SemanticUnit[];
    totalSourceTokens: number;
    totalCompressedTokens: number;
    overallRatio: number;
    serialized: string;
};
//# sourceMappingURL=semantic-compression.d.ts.map