import { ParseMode } from '../tools/markdownConverter.js'; /** * Markdown Splitter Utility * Splits large markdown documents into chunks to avoid Telegram API length limits * * Strategy: * 1. Convert markdown to target format (HTML or MarkdownV2) to get real size * 2. If >= 4000 chars (Telegram's 4096 limit - 96 safety margin), split the markdown * 3. Find split points (---, #-headers, or newlines) * 4. Add page numbers (1/5, 2/5, etc.) */ export interface SplitMarkdownResult { chunks: string[]; isSplit: boolean; originalLength: number; actualHtmlLength: number; chunkCount: number; } /** * Split markdown into chunks considering actual converted size * @param markdown Original markdown text * @param parseMode Target format for size measurement (default: 'HTML') * @returns Split result with chunks and metadata */ export declare function splitMarkdown(markdown: string, parseMode?: ParseMode): SplitMarkdownResult; /** * Add page numbers to chunks * e.g., "Content here\n\n---\n**(1/5)**" */ export declare function addPageNumbers(chunks: string[]): string[]; /** * Prepare markdown chunks for sequential sending * Includes splitting, page numbering, and validation */ export declare function prepareMarkdownChunks(markdown: string, parseMode?: ParseMode): string[]; /** * Calculate delay for sending (in milliseconds) * Telegram rate limiting: avoid sending too fast */ export declare function getSequentialSendDelay(): number;