import type { RAGChunkingOptions, RAGChunkingRegistryLike, RAGArchiveExpander, RAGDirectoryIngestInput, RAGDocumentChunk, RAGDocumentFileInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGDocumentUrlInput, RAGDocumentUrlIngestInput, RAGFileExtractor, RAGFileExtractorRegistryLike, RAGIngestDocument, RAGMediaTranscriber, RAGPDFOCRExtractorOptions, RAGOCRProvider, RAGPreparedDocument } from "@absolutejs/ai";
export declare const createBuiltinArchiveExpander: () => RAGArchiveExpander;
export declare const createEmailExtractor: () => RAGFileExtractor;
export declare const createMailboxContainerExtractor: () => RAGFileExtractor;
export declare const createEPUBExtractor: () => RAGFileExtractor;
export declare const createLegacyDocumentExtractor: () => RAGFileExtractor;
export declare const createOfficeDocumentExtractor: () => RAGFileExtractor;
export declare const createRAGArchiveExpander: (expander: RAGArchiveExpander) => RAGArchiveExpander;
export declare const createRAGFileExtractor: (extractor: RAGFileExtractor) => RAGFileExtractor;
export declare const createRAGFileExtractorRegistry: (registry: RAGFileExtractorRegistryLike) => RAGFileExtractorRegistryLike;
export declare const createRAGChunkingRegistry: (registry: RAGChunkingRegistryLike) => RAGChunkingRegistryLike;
export declare const createRAGImageOCRExtractor: (provider: RAGOCRProvider) => RAGFileExtractor;
export declare const createRAGMediaFileExtractor: (transcriber: RAGMediaTranscriber) => RAGFileExtractor;
export declare const createRAGMediaTranscriber: (transcriber: RAGMediaTranscriber) => RAGMediaTranscriber;
export declare const createRAGOCRProvider: (provider: RAGOCRProvider) => RAGOCRProvider;
export declare const createTextFileExtractor: () => RAGFileExtractor;
export declare const createPDFFileExtractor: () => RAGFileExtractor;
export declare const createRAGArchiveFileExtractor: (expander: RAGArchiveExpander, options?: {
    entryExtractors?: RAGFileExtractor[];
}) => RAGFileExtractor;
export declare const createRAGPDFOCRExtractor: (options: RAGPDFOCRExtractorOptions) => RAGFileExtractor;
export declare const prepareRAGDocument: (document: RAGIngestDocument, defaultChunking?: RAGChunkingOptions, chunkingRegistry?: RAGChunkingRegistryLike) => RAGPreparedDocument;
export declare const prepareRAGDocuments: (input: RAGDocumentIngestInput) => RAGPreparedDocument[];
export declare const mergeMetadata: (inputMetadata: Record<string, unknown> | undefined, extraMetadata: Record<string, unknown> | undefined, baseMetadata: Record<string, unknown> | undefined) => {
    [x: string]: unknown;
};
export declare const buildRAGUpsertInputFromURLs: (input: RAGDocumentUrlIngestInput) => Promise<{
    chunks: RAGDocumentChunk[];
}>;
export declare const loadRAGDocumentFile: (input: RAGDocumentFileInput) => Promise<RAGIngestDocument>;
export declare const loadRAGDocumentFromURL: (input: RAGDocumentUrlInput) => Promise<RAGIngestDocument>;
export declare const loadRAGDocumentsFromUploads: (input: RAGDocumentUploadIngestInput) => Promise<{
    defaultChunking: RAGChunkingOptions | undefined;
    chunkingRegistry: RAGChunkingRegistryLike | undefined;
    documents: RAGIngestDocument[];
}>;
export declare const loadRAGDocumentsFromURLs: (input: RAGDocumentUrlIngestInput) => Promise<{
    defaultChunking: RAGChunkingOptions | undefined;
    chunkingRegistry: RAGChunkingRegistryLike | undefined;
    documents: RAGIngestDocument[];
}>;
export declare const loadRAGDocumentUpload: (input: RAGDocumentUploadInput & {
    extractors?: RAGFileExtractor[];
    extractorRegistry?: RAGFileExtractorRegistryLike;
}) => Promise<RAGIngestDocument>;
export declare const prepareRAGDocumentFile: (input: RAGDocumentFileInput, defaultChunking?: RAGChunkingOptions, chunkingRegistry?: RAGChunkingRegistryLike) => Promise<RAGPreparedDocument>;
export declare const buildRAGUpsertInputFromDirectory: (input: RAGDirectoryIngestInput) => Promise<{
    chunks: RAGDocumentChunk[];
}>;
export declare const buildRAGUpsertInputFromDocuments: (input: RAGDocumentIngestInput) => {
    chunks: RAGDocumentChunk[];
};
export declare const buildRAGUpsertInputFromUploads: (input: RAGDocumentUploadIngestInput) => Promise<{
    chunks: RAGDocumentChunk[];
}>;
export declare const loadRAGDocumentsFromDirectory: (input: RAGDirectoryIngestInput) => Promise<{
    defaultChunking: RAGChunkingOptions | undefined;
    chunkingRegistry: RAGChunkingRegistryLike | undefined;
    documents: RAGIngestDocument[];
}>;
export declare const prepareRAGDirectoryDocuments: (input: RAGDirectoryIngestInput) => Promise<RAGPreparedDocument[]>;
