/** * Importance Decay Calculation * * Implements time-based decay for memory importance, accounting for * access frequency and recency. */ /** * Decay parameters */ export interface DecayParams { baseDecayRate?: number; halfLifeDays?: number; accessBoostFactor?: number; maxAccessBoost?: number; minDecayScore?: number; } /** * Calculate the decay score for a memory * * The decay score represents how "fresh" a memory is, decreasing over time * but being boosted by access frequency. * * Formula: * decay = importance * e^(-rate * days) * (1 + min(accessBoost * accessCount, maxBoost)) * * @param importance - Initial importance (0-1) * @param daysSinceAccess - Days since last access * @param accessCount - Number of times this memory has been accessed * @param params - Optional decay parameters * @returns Decay score (0-1 range) */ export declare function calculateDecayScore(importance: number, daysSinceAccess: number, accessCount: number, params?: DecayParams): number; /** * Calculate exponential decay with half-life * * Uses the formula: score = initial * (1/2)^(days / halfLife) * * @param initial - Initial score * @param days - Days elapsed * @param halfLife - Half-life in days * @returns Decayed score */ export declare function exponentialDecay(initial: number, days: number, halfLife?: number): number; /** * Calculate decay rate from half-life * * @param halfLife - Half-life in days * @returns Decay rate */ export declare function halfLifeToDecayRate(halfLife: number): number; /** * Calculate days until score drops below threshold * * @param initialScore - Initial score * @param threshold - Target threshold * @param decayRate - Decay rate per day * @returns Number of days until threshold is reached */ export declare function daysUntilThreshold(initialScore: number, threshold: number, decayRate?: number): number; /** * Boost decay score on access * * @param currentScore - Current decay score * @param boostAmount - Amount to boost (default: restore to 80% of original) * @returns Boosted decay score */ export declare function boostOnAccess(currentScore: number, boostAmount?: number): number; /** * Multi-factor decay combining time, importance, and usage patterns * * @param params - Memory parameters * @returns Combined decay score */ export declare function multiFactorDecay(params: { importance: number; daysSinceCreation: number; daysSinceAccess: number; accessCount: number; userWeight?: number; decayParams?: DecayParams; }): number; /** * Calculate effective decay for search ranking * * This combines the stored decay score with a query-time recency boost. * * @param storedDecayScore - Pre-computed decay score from storage * @param documentTimestamp - When the document was created * @param currentTime - Current time (default: now) * @param recencyBoostWeight - How much to boost recent items (0-1) * @returns Adjusted decay score for ranking */ export declare function searchTimeDecay(storedDecayScore: number, documentTimestamp: Date, currentTime?: Date, recencyBoostWeight?: number): number; /** * Batch update decay scores for multiple memories * * @param memories - Array of memories with decay metadata * @param params - Decay parameters * @returns Updated decay scores */ export declare function batchUpdateDecayScores(memories: Array<{ id: string; importance: number; lastAccessed: Date; accessCount: number; }>, params?: DecayParams): Array<{ id: string; newDecayScore: number; }>; //# sourceMappingURL=decay.d.ts.map