import { Memory, MemoryType } from '../types';
import { EmbeddingProvider } from './embedding/EmbeddingProvider';
import { ISearchProvider } from './embedding/ISearchProvider';
import { StorageProvider } from '../storage/StorageProvider';
export declare class MemorySystem {
    private storage;
    private logger;
    private embeddingProvider?;
    private searchProvider?;
    constructor(storage: StorageProvider<Memory>, embeddingProvider?: EmbeddingProvider, searchProvider?: ISearchProvider);
    initialize(): Promise<void>;
    createMemory(content: string, type?: MemoryType, metadata?: Record<string, any>): Promise<Memory>;
    getMemory(id: string): Promise<Memory | null>;
    searchMemories(query: string, limit?: number): Promise<Memory[]>;
    searchMemoriesByType(query: string, type: MemoryType, limit?: number): Promise<Memory[]>;
    getAllMemories(): Promise<Memory[]>;
    getRecentMemories(limit?: number): Promise<Memory[]>;
    getMemoriesByType(type: MemoryType): Promise<Memory[]>;
    deleteMemory(id: string): Promise<boolean>;
    clearMemories(): Promise<void>;
    updateMemory(id: string, content: string, metadata?: Record<string, any>): Promise<Memory | null>;
}
//# sourceMappingURL=MemorySystem.d.ts.map