import { Mutex } from 'async-mutex'; import { DatabaseAdapter as DatabaseAdapterInterface, RunResult, TableNameImpl, Transaction as Tx, UncoordinatedDatabaseAdapter } from '../../electric/adapter.js'; import { Statement as DbStatement, Row, Statement } from '../../util/types.js'; import { Database } from './database.js'; export declare class DatabaseAdapter extends TableNameImpl implements DatabaseAdapterInterface { db: Database; readonly defaultNamespace = "main"; protected txMutex: Mutex; constructor(db: Database); _runInTransaction(...statements: DbStatement[]): Promise; _transaction(f: (_tx: Tx, setResult: (res: T) => void) => void): Promise; _run({ sql, args }: DbStatement): Promise; _query({ sql, args }: DbStatement): Promise; _runExclusively(f: (adapter: UncoordinatedDatabaseAdapter) => Promise | T): Promise; runInTransaction(...statements: DbStatement[]): Promise; transaction(f: (_tx: Tx, setResult: (res: T) => void) => void): Promise; run(stmt: Statement): Promise; query(stmt: Statement): Promise; runExclusively(f: (adapter: UncoordinatedDatabaseAdapter) => Promise | T): Promise; }