// Minimal structural types for the better-sqlite3 surface the server uses. // better-sqlite3 ships no type declarations (and no @types is installed), so // this covers just the prepare/get/run/all/transaction/exec/pragma calls the // migrated server modules make. Row shapes stay `any` — the queries are dynamic // and each caller narrows what it reads. Shared so every migrated service reuses // one `Db` type instead of redeclaring it. export interface RunResult { changes: number; lastInsertRowid: number | bigint; } export interface Statement { get(...params: unknown[]): any; run(...params: unknown[]): RunResult; all(...params: unknown[]): any[]; iterate(...params: unknown[]): IterableIterator; pluck(toggle?: boolean): Statement; } export interface Db { prepare(sql: string): Statement; transaction any>(fn: T): T; exec(sql: string): void; pragma(source: string, options?: { simple?: boolean }): any; close(): void; }