import { type DatabaseIntrospector, type Dialect, type DialectAdapter, type Driver, type Kysely, type QueryCompiler } from 'kysely'; export interface NodeSqliteDialectConfig { /** File path, or `:memory:`. */ location: string; /** * Pragmas applied once at startup. The defaults are what you want for a web app on local disk: * WAL for concurrent readers, `foreign_keys` because SQLite leaves them off by default, and a * busy timeout so a concurrent writer waits instead of immediately failing. */ pragmas?: Record; } /** * A Kysely dialect over Node's built-in `node:sqlite` module. * * Deliberately not `better-sqlite3`: the built-in module means Taproot has zero native * dependencies, so `npm install` never needs a C++ toolchain and there is no Node-only binary * that can accidentally be pulled into the Cloudflare Workers bundle. * * Only the driver is custom — the adapter, introspector, and query compiler are Kysely's own * SQLite implementations, so generated SQL is identical to the D1 path. */ export declare class NodeSqliteDialect implements Dialect { #private; constructor(config: NodeSqliteDialectConfig); createDriver(): Driver; createQueryCompiler(): QueryCompiler; createAdapter(): DialectAdapter; createIntrospector(db: Kysely): DatabaseIntrospector; }