/** * Replay — biologically-inspired rehearsal during consolidation. * * Hippocampal replay is internally-driven reactivation of memories during * slow-wave sleep: the brain picks important recent experiences and "plays * them back" without external input, strengthening them before they decay. * In McClelland's complementary-learning-systems framing, replay is also * how episodic memories train the neocortex (interleaved rehearsal); in * reward-modulated STDP, replay is gated by dopamine so rewarded * experiences get preferentially consolidated. * * This module implements a lightweight, deterministic analog. During each * `hippo sleep`, we sample N surviving memories by a priority score that * weighs reward feedback, emotional valence, under-rehearsal, and age — * then apply the same retrieval-strengthening dynamics `markRetrieved` * applies to real queries. The effect is that important memories stay * strong even when the user hasn't explicitly queried them recently. * * Distinct from the other consolidation passes: * - decay: removes what's too weak * - physics: moves particles in embedding space * - merge: collapses near-duplicate episodics into semantics * - REPLAY: picks winners and rehearses them (this file) */ import { type MemoryEntry } from './memory.js'; /** * Priority score used to rank survivors for replay. Higher = more likely * to be sampled. Pure function of the entry and current time. */ export declare function replayPriority(entry: MemoryEntry, now: Date): number; /** * Pick `count` memories for replay, weighted by `replayPriority`, without * replacement. Deterministic given the same seed. * * The sampler is weighted but not greedy — picking by priority alone would * always pick the top-N, which overfits. Biological replay shows both * preferential-for-reward AND stochastic-exploration characteristics; we * keep the stochastic element so adjacent survivors aren't always ignored. */ export declare function sampleForReplay(survivors: MemoryEntry[], count: number, now: Date, seed?: number): MemoryEntry[]; //# sourceMappingURL=replay.d.ts.map