/**
 * Context Pruner Module for UAP
 *
 * Scores and prunes memories based on relevance, recency, and access frequency
 * to fit within a token budget. Uses a composite scoring formula to decide
 * which memories to keep.
 */
export interface PrunableMemory {
    content: string;
    relevance: number;
    age: number;
    accessCount: number;
}
export interface PrunedMemory {
    content: string;
    relevance: number;
}
import { estimateTokens as _estimateTokens } from './context-compressor.js';
export declare const estimateTokens: typeof _estimateTokens;
/**
 * ContextPruner scores memories using a composite formula and removes
 * low-scoring entries until the remaining set fits within a token budget.
 *
 * Scoring formula:
 *   score = relevance * 0.5 + recency * 0.3 + frequency * 0.2
 *
 * where:
 *   recency   = 1 / (1 + age_hours)
 *   frequency = min(accessCount / 10, 1)
 */
export declare class ContextPruner {
    /**
     * Calculate composite score for a memory entry.
     */
    private scoreMemory;
    /**
     * Prune memories to fit within a token budget.
     *
     * Scores each memory, sorts by score descending, then keeps memories
     * until the budget is exhausted.
     *
     * @param memories - Array of memory entries with metadata
     * @param budget - Maximum number of tokens for the result
     * @returns Pruned array of memories that fit within budget
     */
    prune(memories: PrunableMemory[], budget: number): PrunedMemory[];
}
//# sourceMappingURL=context-pruner.d.ts.map