/**
 * @fileoverview Storage adapter for persistent memory storage
 */
import type { MemoryMetadata } from '../types/index.js';
/**
 * Storage adapter interface for different storage backends
 */
export interface StorageAdapter {
    /**
     * Store a memory entry
     */
    store(memory: MemoryMetadata): Promise<void>;
    /**
     * Retrieve a memory by ID
     */
    retrieve(id: string): Promise<MemoryMetadata | null>;
    /**
     * Update a memory entry
     */
    update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
    /**
     * Delete a memory entry
     */
    delete(id: string): Promise<void>;
    /**
     * List memories with optional filtering
     */
    list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
    /**
     * Clear all memories (with optional tenant filter)
     */
    clear(tenantId?: string): Promise<void>;
}
/**
 * Memory filtering options
 */
export interface MemoryFilters {
    tenantId?: string;
    agentId?: string;
    type?: string;
    importance?: number;
    since?: Date;
    until?: Date;
    limit?: number;
    offset?: number;
}
/**
 * In-memory storage adapter for development and testing
 */
export declare class InMemoryStorageAdapter implements StorageAdapter {
    private memories;
    store(memory: MemoryMetadata): Promise<void>;
    retrieve(id: string): Promise<MemoryMetadata | null>;
    update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
    delete(id: string): Promise<void>;
    list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
    clear(tenantId?: string): Promise<void>;
}
/**
 * PostgreSQL storage adapter (stub for future implementation)
 */
export declare class PostgreSQLStorageAdapter implements StorageAdapter {
    private connectionString;
    constructor(connectionString: string);
    store(memory: MemoryMetadata): Promise<void>;
    retrieve(id: string): Promise<MemoryMetadata | null>;
    update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
    delete(id: string): Promise<void>;
    list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
    clear(tenantId?: string): Promise<void>;
}
/**
 * Redis storage adapter (stub for future implementation)
 */
export declare class RedisStorageAdapter implements StorageAdapter {
    private redisUrl;
    constructor(redisUrl: string);
    store(memory: MemoryMetadata): Promise<void>;
    retrieve(id: string): Promise<MemoryMetadata | null>;
    update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
    delete(id: string): Promise<void>;
    list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
    clear(tenantId?: string): Promise<void>;
}
//# sourceMappingURL=StorageAdapter.d.ts.map