import { SQLiteDriver } from '@tanstack/db-sqlite-persistence-core'; export type ExpoSQLiteBindParams = ReadonlyArray | Record; export type ExpoSQLiteRunResult = { changes: number; lastInsertRowId: number; }; export type ExpoSQLiteQueryable = { execAsync: (sql: string) => Promise; getAllAsync: (sql: string, params?: ExpoSQLiteBindParams) => Promise>; runAsync: (sql: string, params?: ExpoSQLiteBindParams) => Promise; }; export type ExpoSQLiteTransaction = ExpoSQLiteQueryable; export type ExpoSQLiteDatabaseLike = ExpoSQLiteQueryable & { withExclusiveTransactionAsync: (task: (transaction: ExpoSQLiteTransaction) => Promise) => Promise; closeAsync?: () => Promise; }; type ExpoSQLiteExistingDatabaseOptions = { database: ExpoSQLiteDatabaseLike; }; type ExpoSQLiteOpenDatabaseOptions = { openDatabase: () => Promise | ExpoSQLiteDatabaseLike; }; export type ExpoSQLiteDriverOptions = ExpoSQLiteExistingDatabaseOptions | ExpoSQLiteOpenDatabaseOptions; export declare class ExpoSQLiteDriver implements SQLiteDriver { private readonly databasePromise; private readonly ownsDatabase; private queue; private nextSavepointId; constructor(options: ExpoSQLiteDriverOptions); exec(sql: string): Promise; query(sql: string, params?: ReadonlyArray): Promise>; run(sql: string, params?: ReadonlyArray): Promise; transaction(fn: (transactionDriver: SQLiteDriver) => Promise): Promise; transactionWithDriver(fn: (transactionDriver: SQLiteDriver) => Promise): Promise; close(): Promise; getDatabase(): Promise; private enqueue; private createTransactionDriver; private runNestedTransaction; } export declare function createExpoSQLiteDriver(options: ExpoSQLiteDriverOptions): ExpoSQLiteDriver; export {};