import ReadyResource from 'ready-resource'; import type { LoggerInterface } from '@qvac/logging'; import { BaseLlmAdapter } from './adapters/llm/BaseLlmAdapter.js'; import type { BaseChunkAdapter } from './adapters/chunker/BaseChunkAdapter.js'; import type { BaseDBAdapter } from './adapters/database/BaseDBAdapter.js'; import type { BaseChunkOpts, BaseDBAdapterConfig, Doc, EmbeddedDoc, EmbeddingFunction, GenerateEmbeddingsOpts, IngestOpts, IngestResult, InferOpts, PartialDoc, ReindexOpts, ReindexResult, SaveEmbeddingsOpts, SaveEmbeddingsResult, SearchParams, SearchResult } from './types.js'; export interface RAGConfig { embeddingFunction: EmbeddingFunction; dbAdapter: BaseDBAdapter; llm?: BaseLlmAdapter; chunker?: BaseChunkAdapter; chunkOpts?: BaseChunkOpts; logger?: LoggerInterface; } export declare class RAG extends ReadyResource { logger: LoggerInterface; dbAdapter: BaseDBAdapter; llmAdapter: BaseLlmAdapter | undefined; private chunkingService; private embeddingService; private ingestionService; private retrievalService; constructor({ llm, embeddingFunction, dbAdapter, chunker, chunkOpts, logger }: RAGConfig); chunk(input: string | string[], opts?: BaseChunkOpts): Promise; generateEmbeddings(text: string): Promise; generateEmbeddingsForDocs(docs: string | string[], opts?: GenerateEmbeddingsOpts): Promise<{ [key: string]: number[]; }>; saveEmbeddings(embeddedDocs: EmbeddedDoc[], opts?: SaveEmbeddingsOpts): Promise; ingest(docs: string | Array, embeddingModelId: string, opts?: IngestOpts): Promise; deleteEmbeddings(ids: string[]): Promise; infer(query: string, opts?: InferOpts): Promise; search(query: string, params?: SearchParams): Promise; setChunker(chunker: BaseChunkAdapter, chunkOpts?: BaseChunkOpts): void; setLlm(llmAdapter: BaseLlmAdapter): void; reindex(opts?: ReindexOpts): Promise; getDBConfig(): Promise; _open(): Promise; _close(): Promise; }