import { type SurrealConfig } from './surreal-adapter'; import { type EmbeddingServiceConfig } from '../services/embedding-service'; import type { S3Config } from '../storage/types'; import type { ChunkOptions } from '../chunking/types'; /** * Redis connection configuration */ export interface RedisConfig { host?: string; port?: number; password?: string; db?: number; } /** * Configuration for RAGWorker */ export interface RAGWorkerConfig { /** Redis connection configuration */ redis: RedisConfig; /** S3 storage configuration */ s3: S3Config; /** SurrealDB configuration */ surreal: SurrealConfig; /** Embedding service configuration */ embedding: EmbeddingServiceConfig; /** Chunking options */ chunking: ChunkOptions; /** Queue name (default: 'rag-sync') */ queueName?: string; /** Worker concurrency (default: 5) */ concurrency?: number; } /** * BullMQ worker that processes RAG sync jobs * * Processing pipeline: * 1. Download file from S3 * 2. Extract text content * 3. Chunk content * 4. Generate embeddings * 5. Insert to SurrealDB */ export declare class RAGWorker { private worker; private redisConnection; private s3Adapter; private fileDetector; private contentExtractor; private chunker; private surrealAdapter; private embeddingService; private initialized; constructor(config: RAGWorkerConfig); /** * Initialize connections (must be called before processing) */ initialize(): Promise; /** * Process a single RAG sync job */ private processJob; /** * Gracefully stop the worker and close connections */ stop(): Promise; } //# sourceMappingURL=rag-worker.d.ts.map