/**
 * CSV Chunking Service
 *
 * Handles chunking of large CSV files to avoid token limits during LLM extraction.
 * Chunks are processed in parallel and observations are merged into the same entity.
 */
export interface CSVChunkMetadata {
    chunkIndex: number;
    totalChunks: number;
    rowsInChunk: number;
    startRow: number;
    endRow: number;
}
export interface CSVChunk {
    content: string;
    metadata: CSVChunkMetadata;
}
/**
 * Check if CSV file is too large and needs chunking
 * @param csvContent Full CSV content
 * @param maxTokens Maximum tokens per chunk (default: 20000 = ~80KB)
 * @returns true if chunking is needed
 */
export declare function needsChunking(csvContent: string, maxTokens?: number): boolean;
/**
 * Chunk large CSV into smaller pieces with header duplication
 *
 * @param csvContent Full CSV content
 * @param rowsPerChunk Number of rows per chunk (default: 100 rows = ~2000 tokens)
 * @returns Array of CSV chunks with metadata
 */
export declare function chunkCSV(csvContent: string, rowsPerChunk?: number): CSVChunk[];
/**
 * Get recommended chunk size based on file size
 * @param fileSize File size in bytes
 * @returns Recommended rows per chunk
 */
export declare function getRecommendedChunkSize(fileSize: number): number;
//# sourceMappingURL=csv_chunking.d.ts.map