import { MemoryStorage } from './storage.js';
import { Memory, SearchMemoryInput, MemorySearchResult } from '../models/memory.js';
/**
 * File-based storage implementation for agent memories
 * Stores each memory as an individual JSON file organized by category
 */
export declare class FileStorage implements MemoryStorage {
    private workingDirectory;
    private storageDir;
    private memoriesDir;
    constructor(workingDirectory: string);
    /**
     * Initialize the file storage system
     */
    initialize(): Promise<void>;
    /**
     * Sanitize a string for safe filesystem usage
     */
    private sanitizeFileName;
    /**
     * Validate title length (max 50 characters for file naming)
     */
    private validateTitle;
    /**
     * Get file path for a memory
     */
    private getMemoryFilePath;
    /**
     * Get file path by ID (scan all categories)
     */
    private findMemoryFileById;
    /**
     * Ensure category directory exists
     */
    private ensureCategoryDirectory;
    /**
     * Handle file name conflicts by adding numeric suffix
     */
    private resolveFileNameConflict;
    /**
     * Create a new memory
     */
    createMemory(memory: Memory): Promise<Memory>;
    /**
     * Get a specific memory by ID
     */
    getMemory(id: string): Promise<Memory | null>;
    /**
     * Get all memories with optional filtering
     */
    getMemories(agentId?: string, category?: string, limit?: number): Promise<Memory[]>;
    /**
     * Update an existing memory
     */
    updateMemory(id: string, updates: Partial<Memory>): Promise<Memory | null>;
    /**
     * Delete a memory
     */
    deleteMemory(id: string): Promise<boolean>;
    /**
     * Search memories by text content
     */
    searchMemories(input: SearchMemoryInput): Promise<MemorySearchResult[]>;
    /**
     * Delete all memories for a specific agent (not applicable for simplified schema)
     */
    deleteMemoriesByAgent(agentId: string): Promise<number>;
    /**
     * Get memory statistics
     */
    getStatistics(): Promise<{
        totalMemories: number;
        memoriesByAgent: Record<string, number>;
        memoriesByCategory: Record<string, number>;
        oldestMemory?: string;
        newestMemory?: string;
    }>;
}
