/* auto-generated by NAPI-RS */ /* eslint-disable */ export declare class Collection { /** Insert points into the collection. */ insert(points: Array): Promise /** Search for similar vectors. */ query(vector: Array, options?: SearchOptions | undefined | null): Promise /** * Search for similar vectors with direct parameters. * * @param vector - Query vector * @param topK - Number of results to return (default: 10) * @param filter - Optional metadata filter * @param includeMetadata - Whether to include metadata (default: true) * @param includeVector - Whether to include vectors (default: false) */ search(vector: Array, topK?: number | undefined | null, filter?: any | undefined | null, includeMetadata?: boolean | undefined | null, includeVector?: boolean | undefined | null): Promise /** Search using a builder pattern. */ buildSearch(vector: Array): SearchBuilder /** Query using a builder pattern (filter-only, no vector search). */ buildQuery(): QueryBuilder /** Update metadata for points in the collection. */ updateMetadata(updates: Array): Promise delete(ids: Array): Promise deleteCollection(): Promise create(dimension: number, distance: string): Promise /** * Create the collection with optional dimension. * * For providers like Chroma that infer dimension from the first insert, * you can pass `undefined` for dimension. For other providers, dimension is required. * * @param dimension - Optional dimension. Use `undefined` for Chroma (infers from first insert). * @param distance - Distance metric ("cosine", "euclidean", or "dot"). */ createAuto(dimension?: number | undefined | null, distance?: string | undefined | null): Promise insertBatch(points: Array, batchSize?: number | undefined | null, parallel?: number | undefined | null): Promise insertStream(points: Array, batchSize?: number | undefined | null, parallel?: number | undefined | null): Promise /** Scroll through points in the collection (paginated export). */ scroll(offset?: string | undefined | null, limit?: number | undefined | null): Promise } export declare class DataMigrator { constructor(source: EmbexClient, dest: EmbexClient) migrate(sourceCollection: string, destCollection: string, dimension: number, batchSize?: number | undefined | null, distance?: string | undefined | null): Promise migrateSimple(sourceCollection: string, destCollection: string, batchSize?: number | undefined | null): Promise } /** Main client for the Embex vector database. */ export declare class EmbexClient { /** * Create a new Embex client. * * @param provider - The database provider (e.g., 'qdrant', 'pinecone'). * @param url - The connection URL. * @param apiKey - Optional API key. */ constructor(provider: string, url: string, apiKey?: string | undefined | null) /** * Create a new Embex client with async initialization. * Required for providers like 'milvus', 'pgvector', and 'lancedb'. * * @param provider - The database provider. * @param url - The connection URL. * @param apiKey - Optional API key. */ static newAsync(provider: string, url: string, apiKey?: string | undefined | null): Promise collection(name: string): Collection /** * Run database migrations. * * @param migrations - Array of migration objects * { * version: string, * operations: [{ type: 'create_collection', schema: ... }, { type: 'delete_collection', name: ... }], * down_operations: [...] * } */ runMigrations(migrations: Array): Promise } export declare class QueryBuilder { limit(limit: number): QueryBuilder offset(offset: number): QueryBuilder includeVector(include: boolean): QueryBuilder includeMetadata(include: boolean): QueryBuilder filter(filter: any): QueryBuilder aggregation(aggType: string): QueryBuilder execute(): Promise } export declare class SearchBuilder { limit(limit: number): SearchBuilder offset(offset: number): SearchBuilder includeVector(include: boolean): SearchBuilder includeMetadata(include: boolean): SearchBuilder filter(filter: any): SearchBuilder aggregation(aggType: string): SearchBuilder execute(): Promise } export declare function cli(args: Array): Promise export interface MetadataUpdate { /** Point ID to update. */ id: string /** Metadata updates to apply. */ updates: Record } export interface MigrationInput { version: string operations?: any downOperations?: any } export interface MigrationResult { pointsMigrated: number elapsedMs: number } /** A point in the vector database. */ export interface Point { id: string vector: Array metadata?: Record } export interface ScrollResponse { points: Array nextOffset?: string } export interface SearchOptions { /** Number of results to return. */ limit?: number /** Metadata filter. */ filter?: any /** Whether to include metadata in results. */ includeMetadata?: boolean /** Whether to include vector in results. */ includeVector?: boolean /** Pagination offset. */ offset?: number } export interface SearchResponse { results: Array aggregations: Record } export interface SearchResult { id: string score: number vector?: Array metadata?: Record }