import type { Message } from './types.js';
export interface MemoryEntry {
    key: string;
    value: string;
    category: 'project' | 'preference' | 'context' | 'decision';
    sessionId: string;
    createdAt: string;
    accessCount: number;
}
/**
 * Save or update a memory entry.
 */
export declare function saveMemory(key: string, value: string, category: MemoryEntry['category'], sessionId: string): void;
/**
 * Load a memory entry by key.
 */
export declare function loadMemory(key: string): MemoryEntry | null;
/**
 * Search memories by keyword across all entries.
 */
export declare function searchMemory(query: string): MemoryEntry[];
/**
 * Get all memories for a specific project (by cwd path).
 */
export declare function getProjectMemory(cwd: string): MemoryEntry[];
/**
 * Called at session start — returns a context string to inject into system prompt.
 * Loads relevant memories for the given project.
 */
export declare function onSessionStart(sessionId: string, cwd: string): string;
/**
 * Called at session end — auto-extract key decisions and context from conversation.
 */
export declare function onSessionEnd(sessionId: string, messages: Message[], cwd: string): void;
/**
 * Remove memories older than maxAge days.
 */
export declare function pruneOldMemories(maxAge: number): number;
export declare function printMemoryStatus(): void;
