/** * [INPUT]: process.env, optional overrides * [OUTPUT]: NanomemConfig — memory dir, token budget, scoring weights, etc. * [POS]: Shared by engine and adapters; host products configure via this */ import type { MemoryScope } from "./types.js"; export interface NanomemConfig { memoryDir: string; tokenBudget: number; budget: { lessons: number; knowledge: number; episodes: number; preferences: number; work: number; facets: number; }; halfLife: Record; maxEntries: { knowledge: number; lessons: number; preferences: number; work: number; facets: number; }; consolidationThreshold: number; /** Stanford-style retrieval scoring weights */ scoreWeights: { recency: number; importance: number; relevance: number; }; /** Utility-weighted eviction: access frequency vs base impact */ evictionWeights: { accessFrequency: number; baseImpact: number; }; /** Default scope for all operations */ defaultScope?: MemoryScope; /** Locale for LLM prompts and injection templates */ locale: "en" | "zh"; /** Strength growth factor on each successful recall (spaced repetition) */ strengthGrowthFactor: number; } export declare function getConfig(overrides?: Partial): NanomemConfig;