/** * ChonkieJS Adapter - Wrapper for @chonkiejs/core text chunking * * Provides text chunking for RAG applications using ChonkieJS when available, * with fallback to native chunking when ChonkieJS is not installed. * * ChonkieJS is a TypeScript port of the Python chonkie library, offering: * - Token-based chunking * - Sentence-based chunking * - Semantic chunking * - Code chunking * * Install (optional): npm install @chonkiejs/core @chonkiejs/token * * @example Using ChonkieJS chunkers * ```typescript * import { ChonkieAdapter } from 'praisonai'; * * const adapter = new ChonkieAdapter({ strategy: 'token', chunkSize: 512 }); * const chunks = await adapter.chunk('Long text to chunk...'); * ``` */ import type { Chunk } from './chunking'; /** * ChonkieJS chunker types */ export type ChonkieStrategy = 'token' | 'sentence' | 'semantic' | 'recursive' | 'code' | 'neural' | 'size' | 'paragraph'; /** * Configuration for ChonkieJS adapter */ export interface ChonkieConfig { /** Chunking strategy to use */ strategy?: ChonkieStrategy; /** Target chunk size (tokens or characters) */ chunkSize?: number; /** Overlap between chunks */ overlap?: number; /** Tokenizer to use (for token strategy) */ tokenizer?: string; /** Language for code chunking */ language?: string; /** Model for semantic/neural chunking */ model?: string; /** Minimum chunk size */ minChunkSize?: number; /** Maximum chunk size */ maxChunkSize?: number; } /** * ChonkieJS chunk result */ export interface ChonkieChunk extends Chunk { /** Token count (if available) */ tokens?: number; /** Semantic score (if available) */ score?: number; } /** * ChonkieJS Adapter - Wraps ChonkieJS chunkers with fallback */ export declare class ChonkieAdapter { private config; private nativeChunker; private chonkieChunker; constructor(config?: ChonkieConfig); /** * Map ChonkieJS strategy to native strategy */ private mapToNativeStrategy; /** * Initialize ChonkieJS chunker (lazy) */ private initChonkieChunker; /** * Chunk text using ChonkieJS or fallback to native */ chunk(text: string): Promise; /** * Get chunker info */ getInfo(): { strategy: ChonkieStrategy; usingChonkie: boolean; config: ChonkieConfig; }; /** * Check if ChonkieJS is being used */ isUsingChonkie(): boolean; } /** * Factory function to create ChonkieAdapter */ export declare function createChonkieAdapter(config?: ChonkieConfig): ChonkieAdapter; /** * Check if ChonkieJS is installed */ export declare function hasChonkie(): Promise; export default ChonkieAdapter;