import type { SqliteDatabase } from '../db/adapter.js'; import { type ConnectionOptions } from '../db/connection.js'; import { KiokukoError } from '../errors.js'; import { type SqliteVecLoader } from './sqlite-vec-loader.js'; import type { EmbeddingConfig, VectorSearchBackend } from './types.js'; export type EmbeddingDatabaseOpener = (databasePath: string, options?: ConnectionOptions) => SqliteDatabase | PromiseLike; export interface OpenEmbeddingDatabaseOptions { readonly config?: EmbeddingConfig; readonly openDatabase?: EmbeddingDatabaseOpener; readonly createLoader?: () => Promise; readonly backend?: VectorSearchBackend; } export interface OpenEmbeddingDatabaseResult { readonly database: SqliteDatabase; readonly backend: VectorSearchBackend | undefined; } /** A forced backend could not be selected; doctor may convert this to a finding. */ export declare class EmbeddingBackendUnavailableError extends KiokukoError { constructor(); } /** * Open one owned database connection and select the backend that is actually * usable on that connection. Only the package-owned sqlite-vec loader can * create an extension-enabled connection. */ export declare function openEmbeddingDatabase(databasePath: string, options: OpenEmbeddingDatabaseOptions): Promise; //# sourceMappingURL=backend.d.ts.map