/** * @fileoverview SentenceBasedDecomposer (SPEC Section 6.1) * * Sentence boundary detection for decomposition. * * Per D-INV-*: * - D-INV-0: chunk.text === input.slice(span.start, span.end) * - D-INV-1: chunks.length >= 1 * - D-INV-2: chunks[i].index === i * - D-INV-2b: chunks sorted by span.start * - D-INV-3: 0 <= span.start <= span.end <= input.length * * @module strategies/decompose/sentence-based */ import type { Chunk } from "../../core/types/chunk.js"; import type { DecomposeStrategy, DecomposeOptions } from "../../core/interfaces/decomposer.js"; /** * Sentence boundary detection for decomposition. * * Per SPEC Section 6.1: * - Uses punctuation-based sentence detection * - Groups sentences to meet chunk size targets * - Non-overlapping by default (OVL-3) */ export declare class SentenceBasedDecomposer implements DecomposeStrategy { readonly name = "SentenceBasedDecomposer"; private readonly defaultMaxChunkSize; private readonly sentenceEndPattern; /** * Create a SentenceBasedDecomposer. * * @param maxChunkSize - Target maximum chunk size in characters */ constructor(maxChunkSize?: number); /** * Decompose text into sentence-based chunks. */ decompose(text: string, options?: DecomposeOptions): Promise; /** * Find sentence boundaries in text. * Returns array of end positions (after punctuation and whitespace). */ private findSentenceBoundaries; } //# sourceMappingURL=sentence-based.d.ts.map