import type { MemoryRepository } from '../db/repositories/memory.repository.js';
import type { SessionRepository } from '../db/repositories/session.repository.js';
import type { ProjectRepository } from '../db/repositories/project.repository.js';
import type { SynapseManager } from '../synapses/synapse-manager.js';
import type { EmbeddingEngine } from '../embeddings/engine.js';
import type { MemoryRecord, SessionRecord, RememberInput, RecallInput, StartSessionInput, EndSessionInput } from '../types/memory.types.js';
export declare class MemoryService {
    private memoryRepo;
    private sessionRepo;
    private projectRepo;
    private synapseManager;
    private embeddingEngine;
    private logger;
    constructor(memoryRepo: MemoryRepository, sessionRepo: SessionRepository, projectRepo: ProjectRepository, synapseManager: SynapseManager);
    setEmbeddingEngine(engine: EmbeddingEngine): void;
    remember(input: RememberInput & {
        project?: string;
    }): {
        memoryId: number;
        superseded?: number;
    };
    recall(input: RecallInput): MemoryRecord[];
    forget(memoryId: number): void;
    getPreferences(projectId?: number): MemoryRecord[];
    getDecisions(projectId?: number): MemoryRecord[];
    getGoals(projectId?: number): MemoryRecord[];
    getLessons(projectId?: number): MemoryRecord[];
    startSession(input: StartSessionInput & {
        project?: string;
    }): {
        sessionId: number;
        dbSessionId: string;
    };
    endSession(input: EndSessionInput): void;
    getSessionHistory(projectId?: number, limit?: number): SessionRecord[];
    getCurrentSession(sessionUuid: string): SessionRecord | undefined;
    getStats(): {
        active: number;
        byCategory: Record<string, number>;
        sessions: number;
        lastSession?: string;
    };
    expireOldMemories(): number;
}
