/** * PDF Chunker Utility * * Splits large PDFs into smaller chunks that fit within Gemini's limits: * - Max 50MB per file * - Max 1000 pages per file * * Uses pdf-lib for pure JavaScript PDF manipulation (no system dependencies). */ /** * Gemini file limits */ export declare const GEMINI_LIMITS: { maxFileSizeBytes: number; maxPages: number; chunkPages: number; chunkSizeBytes: number; }; /** * Result of PDF analysis */ export interface PdfAnalysis { filePath: string; fileName: string; fileSize: number; pageCount: number; needsChunking: boolean; estimatedChunks: number; reason?: string; } /** * Result of PDF chunking */ export interface PdfChunk { chunkIndex: number; totalChunks: number; filePath: string; fileName: string; pageStart: number; pageEnd: number; pageCount: number; fileSize: number; } /** * Result of chunking operation */ export interface ChunkingResult { success: boolean; originalFile: string; chunks: PdfChunk[]; totalPages: number; error?: string; } /** * Analyze a PDF to determine if it needs chunking */ export declare function analyzePdf(filePath: string): Promise; /** * Split a PDF into chunks */ export declare function chunkPdf(filePath: string): Promise; /** * Clean up chunk files after upload */ export declare function cleanupChunks(chunks: PdfChunk[]): Promise;