import { Database as BetterSqliteDatabase } from 'better-sqlite3'; import { MigrationOptions } from './migration'; import { DatabaseSchema } from './DatabaseSchema'; import { Stream, ErrorDetails } from '@andyfischer/streams'; import { SingletonAccessor } from './SingletonAccessor'; import { IncrementingIdOptions, SingletonIncrementingId } from './SingletonIncrementingId'; export interface RunResult { changes: number; lastInsertRowid: number; } export declare class SqliteDatabase { db: BetterSqliteDatabase; logs: Stream; onRunStatement?: (sql: string, params: Array) => void; constructor(db: BetterSqliteDatabase, logs: Stream); get(sql: string, params?: any): any; list(sql: string, params?: any): any[]; all(sql: string, params?: any): any[]; each(sql: string, params?: any): Generator; run(sql: string, params?: any): RunResult; pragma(statement: string): any; exists(sql: string, params?: any): boolean; count(sql: string, params?: any): number; insert(tableName: string, row: Record): RunResult; update(tableName: string, whereClause: string, whereValues: any[], row: Record): RunResult; upsert(tableName: string, whereClause: Record, row: Record): void; singleton(tableName: string): SingletonAccessor; incrementingId(tableName: string, options?: IncrementingIdOptions): SingletonIncrementingId; migrateCreateStatement(createStatement: string, options: MigrationOptions): void; setupInitialData(statement: string): void; migrateToSchema(schema: DatabaseSchema, options?: MigrationOptions): void; performRebuild(schema: DatabaseSchema, tableName: string): void; runDatabaseSloppynessCheck(schema: DatabaseSchema): void; error(error: ErrorDetails): void; warn(msg: any): void; info(msg: any): void; close(): void; }