import type { RAGConfig, RAGDocument, RAGSearchQuery, RAGSearchResult, RAGStats, EmbeddingModel, DocumentProcessor, RAGVectorStore } from './types.js';
export interface IndexingResult {
    indexed: number;
    failed: number;
    documents: RAGDocument[];
    errors: string[];
}
export declare class RAGPipeline {
    private config;
    private embeddingModel;
    private vectorStore;
    private documentProcessor;
    private initialized;
    constructor(config: RAGConfig, embeddingModel: EmbeddingModel, vectorStore: RAGVectorStore, documentProcessor: DocumentProcessor);
    initialize(): Promise<void>;
    indexDocument(documentPath: string): Promise<RAGDocument>;
    indexDirectory(directoryPath: string, progressCallback?: (current: number, total: number) => void): Promise<IndexingResult>;
    indexCollection(collectionName: string): Promise<IndexingResult>;
    search(query: RAGSearchQuery): Promise<RAGSearchResult[]>;
    getStats(): Promise<RAGStats>;
    clearIndex(): Promise<void>;
    saveIndex(): Promise<void>;
    loadIndex(): Promise<void>;
    private getMarkdownFiles;
}
//# sourceMappingURL=rag-pipeline.d.ts.map