import { SQLStatement } from "sql-template-strings"; declare module 'sqlite' { export interface Statement { readonly sql: string; readonly lastID: number; readonly changes: number; bind(): Promise; bind(...params: any[]): Promise; reset(): Promise; finalize(): Promise; run(): Promise; run(...params: any[]): Promise; get(): Promise; get(...params: any[]): Promise; get(): Promise; get(...params: any[]): Promise; all(): Promise; all(...params: any[]): Promise; all(): Promise; all(...params: any[]): Promise; each(callback?: (err: Error, row: any) => void): Promise; each(...params: any[]): Promise; } export interface Database { close(): Promise; run(sql: string): Promise; run(sql: string, ...params: any[]): Promise; run(sql: SQLStatement): Promise; get(sql: string): Promise; get(sql: string, ...params: any[]): Promise; get(sql: SQLStatement): Promise; get(sql: string): Promise; get(sql: string, ...params: any[]): Promise; get(sql: SQLStatement): Promise; all(sql: string): Promise; all(sql: string, ...params: any[]): Promise; all(sql: SQLStatement): Promise; all(sql: string): Promise; all(sql: string, ...params: any[]): Promise; all(sql: SQLStatement): Promise; exec(sql: string): Promise; each(sql: string, callback?: (err: Error, row: any) => void): Promise; each(sql: string, ...params: any[]): Promise; each(sql: SQLStatement, callback?: (err: Error, row: any) => void): Promise; prepare(sql: string): Promise; prepare(sql: string, ...params: any[]): Promise; prepare(sql: SQLStatement): Promise; configure(option: "busyTimeout", value: number): void; configure(option: string, value: any): void; migrate(options: { force?: string, table?: string, migrationsPath?: string }): Promise; on(event: "trace", listener: (sql: string) => void): void; on(event: "profile", listener: (sql: string, time: number) => void): void; on(event: "error", listener: (err: Error) => void): void; on(event: "open" | "close", listener: () => void): void; on(event: string, listener: (...args: any[]) => void): void; } export function open(filename: string, options?: { mode?: number, verbose?: boolean, promise?: typeof Promise }): Promise; }