import { AsyncPreparedStatement, type DuckDBBundle, type Logger as DuclDBLogger } from "@duckdb/duckdb-wasm"; import { type AsyncmuxLock } from "asyncmux"; import type { IDatabase, IStatement, Row } from "../../../shared/database.js"; import { type IJsonify } from "../../../shared/jsonify.js"; /** * SQL ステートメントを扱うためのクラスです。 */ declare class Statement implements IStatement { #private; /** * `Statement` クラスの新しいインスタンスを生成します。 * * @param jsonify オブジェクトを JSON 形式に変換する関数です。 * @param stmt `AsyncPreparedStatement` オブジェクトです。 * @param lock 獲得した書き込みロックです。 */ constructor(jsonify: IJsonify, stmt: AsyncPreparedStatement, lock: AsyncmuxLock); /** * ステートメントを閉じます。 */ close(): Promise; /** * ステートメントを実行します。 * * @param values SQL ステートメントに渡すパラメーターです。 */ exec(...values: unknown[]): Promise; /** * ステートメントを実行し、結果の行を非同期ジェネレーターとして取得します。 * * @param values SQL ステートメントに渡すパラメーターです。 * @returns 行の非同期ジェネレーターを返します。 */ query(...values: unknown[]): AsyncGenerator; } /** * DuckDB の各種モジュールの情報です。 */ export type DuckdbBundle = DuckDBBundle; /** * DuckDB のロガーのインターフェースです。 */ export interface IDuckdbLogger extends DuclDBLogger { } /** * データベース接続を管理するためのクラスです。内部的に WebAssembly 版の DuckDB を使用しています。 */ export default class DuckdbWasm implements IDatabase { #private; /** * `DuckdbWasm` クラスの新しいインスタンスを生成します。 * * @param path データベースファイルのパスです。 * @param bundle DuckDB の各種モジュール情報を含むバンドルです。 * @param logger ログを記録するためのロガーです。 * @param jsonify オブジェクトを JSON 形式に変換する関数です。 */ constructor(path: string, bundle: DuckdbBundle, logger: IDuckdbLogger, jsonify?: IJsonify | undefined); /** * 指定されたパスのデータベースを開きます。 */ open(): Promise; /** * データベース接続を閉じます。 */ close(): Promise; /** * SQL クエリーを実行します。 * * @param text 実行する SQL クエリーです。 */ exec(text: string): Promise; /** * SQL クエリーを実行し、結果の行を非同期ジェネレーターとして取得します。 * * @param text 実行する SQL クエリーです。 * @returns 行の非同期ジェネレーターを返します。 */ query(text: string): AsyncGenerator; /** * SQL ステートメントを準備します。 * * @param text 準備する SQL ステートメントです。 * @returns 準備された `Statement` オブジェクトを返します。 */ prepare(text: string): Promise; } export {}; //# sourceMappingURL=duckdb-wasm.d.ts.map