import { RAGConfig, SearchResult } from "./types"; import { DocumentUploadResult } from "./storage"; import { HybridSearchConfig } from "./retrieval"; export declare class RAGEngine { private vectorStore; private embeddingModel; private processingPipeline; private storageManager?; private hybridRetriever?; private rssManager; private config; constructor(config: RAGConfig); private initializeComponents; initialize(): Promise; addDocument(filePath: string, content: Buffer): Promise; addDocuments(files: Array<{ path: string; content: Buffer; }>): Promise; search(query: string, k?: number): Promise; vectorSearch(query: string, k?: number): Promise; hybridSearch(query: string, k?: number): Promise; deleteDocument(documentId: string): Promise; updateDocument(documentId: string, filePath: string, content: Buffer): Promise; getSupportedExtensions(): string[]; getStats(): Promise<{ documentCount: number; chunkCount: number; embeddingModel: string; vectorStoreType: string; }>; clear(): Promise; uploadDocumentToStorage(file: Buffer | File, fileName: string, metadata?: Record): Promise; addDocumentFromStorage(filePath: string): Promise; uploadAndAddDocument(file: Buffer | File, fileName: string, metadata?: Record): Promise<{ documentId: string; uploadResult: DocumentUploadResult; }>; deleteDocumentFromStorage(documentPath: string): Promise; listStorageDocuments(): Promise; }>>; getStorageStats(): Promise<{ totalFiles: number; totalSize: number; bucketName: string; }>; private getDocumentIdFromPath; isStorageConfigured(): boolean; updateHybridSearchConfig(config: Partial): void; getSearchStats(): { hybridRetriever?: { indexSize: number; config: HybridSearchConfig; }; vectorStore: { chunkCount: number; embeddingModel: string; }; }; clearSearchIndex(): void; addSearchSynonyms(word: string, synonyms: string[]): void; searchWithOptions(query: string, options?: { method?: "hybrid" | "vector" | "keyword"; k?: number; minScore?: number; vectorWeight?: number; keywordWeight?: number; }): Promise; addNaverBlogRSS(blogId: string, feedName?: string, config?: { maxItems?: number; includeContent?: boolean; }): Promise<{ documentIds: string[]; feedName: string; itemCount: number; }>; addRSSFeed(url: string, feedName?: string, config?: { maxItems?: number; includeContent?: boolean; }): Promise<{ documentIds: string[]; feedName: string; itemCount: number; }>; refreshRSSFeed(feedName: string): Promise<{ documentIds: string[]; itemCount: number; }>; refreshAllRSSFeeds(): Promise>; removeRSSFeed(feedName: string): boolean; getRSSFeedNames(): string[]; getRSSFeedInfo(feedName: string): { exists: boolean; type: "naver" | "generic" | null; blogId?: string; rssUrl?: string; }; static extractNaverBlogId(url: string): string | null; } //# sourceMappingURL=engine.d.ts.map