/** * @license * Copyright 2026 Qwen * SPDX-License-Identifier: Apache-2.0 */ export interface MemoryConnection { baseUrl: string; apiKey?: string; } export type MemoryLogger = (event: string, details?: Record) => void; export interface MemoryConfig { enabled: boolean; dir: string; defaultId: string; retrieve: { topK: number; maxChars: number; retrievedMaxChars: number; useVector: boolean; model: string; timeoutMs: number; backfillTimeoutMs: number; cacheSize: number; minSim: number; vecLimit: number; ftsLimit: number; ftsAndTryThreshold: number; andBoost: number; timeRangeBoost: number; timeEdgeDays: number; rrfK: number; envMinGapSec: number; }; preload: { ltmMaxPerField: number; ltmMaxChars: number; stmUpcomingGraceDays: number; stmMaxAgeDays: number; recencyLambda: number; upcomingWeight: number; ongoingWeight: number; urgentBoost: number; urgentDays: number; stmMaxItems: number; stmMaxChars: number; }; updater: { enabled: boolean; model: string; baseUrl: string; apiKeyEnv: string; timeoutMs: number; temperature: number; maxTokens: number; maxWmEntries: number; shutdownWaitSec: number; }; observer: { enabled: boolean; model: string; baseUrl: string; apiKeyEnv: string; intervalSec: number; timeoutMs: number; temperature: number; maxTokens: number; maxContentChars: number; maxFrameAgeSec: number; }; wm: { maxEntries: number; maxEntryChars: number; }; segment: { maxTurns: number; minTurnsBeforeGapCut: number; maxChars: number; silenceGapSec: number; }; } export declare const DEFAULT_MEMORY_CONFIG: MemoryConfig; export declare function initialMemoryConfig(enabled: boolean, model?: string): { enabled: boolean; updater: { model: string; enabled: boolean; baseUrl: string; apiKeyEnv: string; timeoutMs: number; temperature: number; maxTokens: number; maxWmEntries: number; shutdownWaitSec: number; }; observer: { enabled: boolean; baseUrl: string; apiKeyEnv: string; intervalSec: number; timeoutMs: number; temperature: number; maxTokens: number; maxContentChars: number; maxFrameAgeSec: number; }; dir: string; defaultId: string; retrieve: { topK: number; maxChars: number; retrievedMaxChars: number; useVector: boolean; model: string; timeoutMs: number; backfillTimeoutMs: number; cacheSize: number; minSim: number; vecLimit: number; ftsLimit: number; ftsAndTryThreshold: number; andBoost: number; timeRangeBoost: number; timeEdgeDays: number; rrfK: number; envMinGapSec: number; }; preload: { ltmMaxPerField: number; ltmMaxChars: number; stmUpcomingGraceDays: number; stmMaxAgeDays: number; recencyLambda: number; upcomingWeight: number; ongoingWeight: number; urgentBoost: number; urgentDays: number; stmMaxItems: number; stmMaxChars: number; }; wm: { maxEntries: number; maxEntryChars: number; }; segment: { maxTurns: number; minTurnsBeforeGapCut: number; maxChars: number; silenceGapSec: number; }; }; export declare function resolveMemoryConfig(raw: unknown, dataDir: string, configPath: string): MemoryConfig; export declare function validateMemoryBaseUrl(value: string): string; export declare function deriveMemoryBaseUrl(realtimeEndpoint: string): string;