/**
 * Abstract SQLite interface to decouple SessionStore from a specific SQLite
 * binding. Enables Bun standalone binary builds (bun:sqlite) while preserving
 * the existing better-sqlite3 path for Node.js.
 *
 * Two implementations:
 *   - NodeSqliteAdapter  — wraps better-sqlite3 (existing path, zero changes)
 *   - BunSqliteAdapter   — wraps bun:sqlite (Bun built-in, zero dependencies)
 *
 * The factory `createSqliteAdapter()` detects the runtime and returns the
 * correct adapter. Callers (SessionStore) only interact with the `SqliteAdapter`
 * interface — they never import better-sqlite3 or bun:sqlite directly.
 */
/** Result shape from statement.run(). Matches both better-sqlite3 and bun:sqlite. */
export interface SqliteRunResult {
    changes: number;
}
/**
 * Typed prepared statement. Params is a tuple of bound parameter types;
 * Row is the returned row shape for .all() and .get().
 */
export interface SqliteStatement<Params extends unknown[] = unknown[], Row = unknown> {
    all(...params: Params): Row[];
    get(...params: Params): Row | undefined;
    run(...params: Params): SqliteRunResult;
}
/** Full SQLite adapter. Mirrors the better-sqlite3 API surface used by SessionStore. */
export interface SqliteAdapter {
    prepare<Params extends unknown[], Row = unknown>(sql: string): SqliteStatement<Params, Row>;
    exec(sql: string): void;
    pragma(sql: string): void;
    transaction<T>(fn: () => T): () => T;
    close(): void;
}
/**
 * Create a SQLite adapter for the given filesystem path. Auto-detects the
 * runtime (Node.js → better-sqlite3, Bun → bun:sqlite) and returns the
 * matching implementation.
 */
export declare function createSqliteAdapter(path: string): SqliteAdapter;
//# sourceMappingURL=sqlite-adapter.d.ts.map