/**
 * Memory lifecycle operations.
 *
 * Phase 2 of the audit-recommended store.ts split. The "lifecycle"
 * group is the set of functions that mutate a memory's state over
 * time *without* being CRUD: access reinforcement, search
 * reinforcement, enrichment, decay-score persistence, STM→LTM
 * promotion, and bulk decay cleanup. Lifted out of store.ts (still
 * 1,800+ lines after phase 1) so each concern can be read on its
 * own. No behaviour change vs the original implementation — exports
 * re-emerge from store.ts via a barrel re-export so existing import
 * paths keep working.
 *
 * Imports from store.ts (getMemoryById, rowToMemory, getMemoriesByType,
 * MAX_CONTENT_SIZE) form a module cycle. Both directions only invoke
 * the imported symbols inside function bodies — ESM live bindings
 * handle this correctly at runtime. As of phase 3, reinforceFromSearch
 * and enrichMemory are consumed by search-recall.ts (not store.ts);
 * that import is non-cyclic since search-recall.ts is a leaf consumer
 * of lifecycle.ts.
 */
import { Memory, MemoryConfig } from './types.js';
import type { DefenceSource } from '../defence/types.js';
/**
 * Access a memory (updates access count and timestamp, returns reinforced memory)
 */
export declare function accessMemory(id: number, config?: MemoryConfig, source?: DefenceSource): Memory | null;
/**
 * Reinforce a memory that appeared in search results
 * Gives a small salience boost with diminishing returns based on access count.
 * ORGANIC FEATURE: Searched memories get reinforced, closing the feedback loop
 * so frequently-found memories grow stronger over time.
 */
export declare function reinforceFromSearch(memoryId: number): void;
/**
 * Enrichment result indicating what happened
 */
export interface EnrichmentResult {
    enriched: boolean;
    reason: string;
}
/**
 * Enrich a memory with additional context
 *
 * This adds timestamped context to a memory when:
 * 1. The new context is sufficiently related but different (new information)
 * 2. The memory hasn't been enriched recently (cooldown)
 * 3. The content won't exceed the size limit
 *
 * ORGANIC FEATURE: Memories grow with new context over time,
 * mimicking how human memories are reconsolidated with new information
 *
 * @param memoryId - ID of the memory to enrich
 * @param newContext - New context to add
 * @param contextType - Type of context ('search' | 'access' | 'related')
 * @returns EnrichmentResult indicating success or failure with reason
 */
export declare function enrichMemory(memoryId: number, newContext: string, contextType?: 'search' | 'access' | 'related'): EnrichmentResult;
/**
 * Clear enrichment cooldown for a memory (for testing)
 */
export declare function clearEnrichmentCooldown(memoryId: number): void;
/**
 * Get enrichment cooldown status for a memory
 */
export declare function getEnrichmentCooldownStatus(memoryId: number): {
    onCooldown: boolean;
    remainingMs: number;
};
/**
 * Update persisted decay scores for all memories
 * Called during consolidation and periodically by the API server
 * Returns the number of memories updated
 */
export declare function updateDecayScores(): number;
/**
 * Promote a memory from short-term to long-term
 */
export declare function promoteMemory(id: number): Memory | null;
/**
 * Bulk delete decayed memories
 */
export declare function cleanupDecayedMemories(config?: MemoryConfig): number;
