import { AbstractPowerSyncDatabase, CompilableQueryWatchHandler, QueryResult, SQLWatchOptions } from '@powersync/common'; import { Query } from 'drizzle-orm'; import { ExtractTablesWithRelations } from 'drizzle-orm/relations'; import { SQLiteTransaction } from 'drizzle-orm/sqlite-core'; import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core/db'; import type { DrizzleConfig } from 'drizzle-orm/utils'; import { PowerSyncSQLiteTransactionConfig } from './PowerSyncSQLiteBaseSession.js'; export type DrizzleQuery = { toSQL(): Query; execute(): Promise; }; export declare class PowerSyncSQLiteDatabase = Record> extends BaseSQLiteDatabase<'async', QueryResult, TSchema> { private db; constructor(db: AbstractPowerSyncDatabase, config?: DrizzleConfig); transaction(transaction: (tx: SQLiteTransaction<'async', QueryResult, TSchema, ExtractTablesWithRelations>) => Promise, config?: PowerSyncSQLiteTransactionConfig): Promise; watch(query: DrizzleQuery, handler: CompilableQueryWatchHandler, options?: SQLWatchOptions): void; } export declare function wrapPowerSyncWithDrizzle = Record>(db: AbstractPowerSyncDatabase, config?: DrizzleConfig): PowerSyncSQLiteDatabase;