/**
 * Database Manager
 *
 * Handles SQLite database operations for conversation state persistence.
 * Uses @sqlite.org/sqlite-wasm for reliable cross-platform WebAssembly bindings.
 */
import type { ConversationState, InteractionLog } from './types.js';
import type { IPersistence } from './persistence-interface.js';
/**
 * Database connection and operations manager
 * @deprecated Use FileStorage for new implementations. This class will be removed in a future version.
 */
export declare class Database implements IPersistence {
    private db;
    private sqlite3;
    private dbPath;
    constructor(dbPath: string);
    /**
     * Initialize database connection and create tables
     */
    initialize(): Promise<void>;
    /**
     * Load database content from file
     */
    private loadFromFile;
    /**
     * Save database content to file
     */
    private saveToFile;
    /**
     * Create database tables if they don't exist
     */
    private createTables;
    /**
     * Save conversation state to database
     */
    saveConversationState(state: ConversationState): Promise<void>;
    /**
     * Get conversation state by ID
     */
    getConversationState(conversationId: string): Promise<ConversationState | null>;
    /**
     * Get all conversation states
     */
    getAllConversationStates(): Promise<ConversationState[]>;
    /**
     * Delete conversation state
     */
    deleteConversationState(conversationId: string): Promise<boolean>;
    /**
     * Log interaction
     */
    logInteraction(log: InteractionLog): Promise<void>;
    /**
     * Get interaction logs for a conversation
     */
    getInteractionLogs(conversationId: string): Promise<InteractionLog[]>;
    /**
     * Get interaction logs for a conversation (alias for compatibility)
     */
    getInteractionsByConversationId(conversationId: string): Promise<InteractionLog[]>;
    /**
     * Soft delete interaction logs (for compatibility - actually deletes them)
     */
    softDeleteInteractionLogs(conversationId: string): Promise<void>;
    /**
     * Reset conversation state (for testing)
     */
    resetConversationState(conversationId: string): Promise<void>;
    /**
     * Close database connection
     */
    close(): Promise<void>;
}
