import Database from "better-sqlite3"; /** * DatabaseAdapter interface to standardize database operations * This provides a consistent API for database access across the application */ export interface DatabaseAdapter { db: Database.Database; /** * Execute a SELECT query and return all matching rows * @param sql SQL query with placeholders * @param params Query parameters * @returns Array of matching rows */ all(sql: string, params?: any[]): Promise; /** * Execute a SELECT query and return the first matching row * @param sql SQL query with placeholders * @param params Query parameters * @returns First matching row or undefined if none found */ get(sql: string, params?: any[]): Promise; /** * Execute an INSERT, UPDATE, or DELETE query * @param sql SQL query with placeholders * @param params Query parameters * @returns Result object with lastID and changes properties */ run(sql: string, params?: any[]): Promise<{ lastID: number; changes: number; }>; /** * Prepare a statement for later execution * @param sql SQL query with placeholders * @returns Prepared statement */ prepare(sql: string): any; /** * Execute a SQL query without returning results * @param sql SQL query */ exec(sql: string): void; /** * Close the database connection */ close(): void; }