/**
 * @fileoverview Temporal memory management for time-based operations
 */
import type { MemoryMetadata, MemoryType } from '../types/index.js';
/**
 * Time-based memory decay factors
 */
export interface DecayParameters {
    /** Importance multiplier (0-1) */
    importance: number;
    /** Access frequency multiplier (0-1) */
    frequency: number;
    /** Emotional weight multiplier (0-1) */
    emotional: number;
    /** Base decay rate per day */
    baseDecayRate: number;
}
/**
 * Default decay parameters for different memory types
 */
export declare const DEFAULT_DECAY_PARAMETERS: Record<MemoryType, DecayParameters>;
/**
 * Temporal memory engine for managing time-based memory operations
 */
export declare class TemporalEngine {
    private decayParameters;
    constructor(customDecayParameters?: Partial<Record<MemoryType, Partial<DecayParameters>>>);
    /**
     * Calculate time-adjusted confidence for a memory
     */
    calculateTimeDecay(memory: MemoryMetadata, currentTime?: Date): number;
    /**
     * Determine if a memory should be archived based on its decay
     */
    shouldArchive(memory: MemoryMetadata, archiveThreshold?: number, currentTime?: Date): boolean;
    /**
     * Determine if a memory should be forgotten based on TTL and decay
     */
    shouldForget(memory: MemoryMetadata, forgetThreshold?: number, currentTime?: Date): boolean;
    /**
     * Calculate relevance score considering temporal factors
     */
    calculateTemporalRelevance(memory: MemoryMetadata, baseRelevance: number, currentTime?: Date): number;
    /**
     * Update memory access statistics
     */
    updateAccess(memory: MemoryMetadata, currentTime?: Date): MemoryMetadata;
    /**
     * Get memories that need maintenance (archiving/forgetting)
     */
    getMemoriesForMaintenance(memories: MemoryMetadata[], archiveThreshold?: number, forgetThreshold?: number, currentTime?: Date): {
        toArchive: MemoryMetadata[];
        toForget: MemoryMetadata[];
    };
    /**
     * Set custom decay parameters for a memory type
     */
    setDecayParameters(type: MemoryType, parameters: Partial<DecayParameters>): void;
    /**
     * Get current decay parameters for a memory type
     */
    getDecayParameters(type: MemoryType): DecayParameters;
    /**
     * Reset decay parameters to defaults
     */
    resetDecayParameters(): void;
}
//# sourceMappingURL=TemporalEngine.d.ts.map