import { DBAsync, StmtAsync, TXAsync, UpdateType } from "@vlcn.io/xplat-api"; export declare class DB implements DBAsync { #private; api: SQLiteAPI; db: number; readonly filename: string; readonly __mutex: import("async-mutex/lib/Mutex.js").default; private stmtFinalizer; private cache; constructor(api: SQLiteAPI, db: number, filename: string); get siteid(): string; _setSiteid(siteid: string): void; _setTablesUsedStmt(stmt: StmtAsync): void; get tablesUsedStmt(): StmtAsync; automigrateTo(schemaName: string, schemaContent: string): Promise<"noop" | "apply" | "migrate">; execMany(sql: string[]): Promise; exec(sql: string, bind?: SQLiteCompatibleType[]): Promise; /** * @returns returns an object for each row, e.g. `{ col1: valA, col2: valB, ... }` */ execO(sql: string, bind?: SQLiteCompatibleType[]): Promise; /** * @returns returns an array for each row, e.g. `[ valA, valB, ... ]` */ execA(sql: string, bind?: SQLiteCompatibleType[]): Promise; prepare(sql: string): Promise; tx(cb: (tx: TXAsync) => Promise): Promise; imperativeTx(): Promise<[() => void, TXAsync]>; /** * Close the database and finalize any prepared statements that were not freed for the given DB. */ close(): Promise; createFunction(name: string, fn: (...args: any) => unknown, opts?: {}): void; onUpdate(cb: (type: UpdateType, dbName: string, tblName: string, rowid: bigint) => void): () => void; } //# sourceMappingURL=DB.d.ts.map