import type { Fact, NewFact, SearchOpts, MemorySearchResult, SessionRecord, NewSession, Procedure, SessionOutcome } from './types.js'; export declare const HOT_SOFT_WARN_RATIO = 0.8; export declare function estimateTokens(text: string): number; export interface HotUsage { chars: number; tokens: number; maxTokens: number; pct: number; truncated: boolean; } export declare class MemoryStore { private readonly dir; private readonly db; constructor(memoryDir?: string); private enableWalMode; loadHot(): string | null; saveHot(content: string): HotUsage; hotUsage(): HotUsage; private computeHotUsage; storeFact(fact: NewFact): number; supersedeFact(factId: number, newContent: string, category?: string, evidence?: string | null): number; removeFact(factId: number): boolean; getFact(factId: number): Fact | null; searchFacts(query: string, opts?: SearchOpts): Fact[]; startSession(session: NewSession): void; endSession(sessionId: string, summary: string, outcome: SessionOutcome, tokenCount?: number, costUsd?: number): void; getSession(sessionId: string): SessionRecord | null; recentSessions(limit?: number): SessionRecord[]; writeProcedure(name: string, content: string, sessionId?: string): void; loadProcedure(name: string): Procedure | null; searchProcedures(query: string): Procedure[]; search(query: string, opts?: SearchOpts): MemorySearchResult[]; replayWAL(): number; close(): void; private appendWAL; }