UNPKG

@minto-ai/text-stream-slicer

Version:

实时将 Markdown 文本流智能切分为可朗读句子。

57 lines (56 loc) 2 kB
/** * 预处理器:识别并处理流式文本片段尾部的未完成结构(Markdown 链接、数字/小数与 CSS img 标签)。 */ declare class PreprocessText { private pendingText; private readonly MD_LINK_TAIL_PATTERNS; private readonly NUMBER_TAIL_PATTERNS; private readonly IMG_TAG_TAIL_PATTERNS; private readonly VIDEO_TAG_TAIL_PATTERNS; /** * 判断片段末尾是否处在 Markdown 链接结构中(未完成或完整)。 * * @param text 输入文本。 * @returns 是否在链接尾部。 */ isMarkdownLinkTail(text: string): boolean; /** * 判断片段末尾是否是数字或小数的一部分(未完成或完整)。 * * @param text 输入文本。 * @returns 是否命中数字尾部。 */ isNumberTail(text: string): boolean; /** * 判断片段末尾是否处在 CSS img 标签结构中(未完成或完整)。 * * @param text 输入文本。 * @returns 是否命中 img 标签尾部。 */ isImgTagTail(text: string): boolean; /** * 判断片段末尾是否处在 HTML video 标签结构中(未完成或完整)。 * * @param text 输入文本。 * @returns 是否命中 video 标签尾部。 */ isVideoTagTail(text: string): boolean; /** * 合并缓存并判断是否需要继续缓存当前片段,以避免在未完成结构处切句。 * * @param text 当前输入片段。 * @param includeRemaining 是否包含待处理的剩余文本。 * @returns 预处理结果:若触发缓存则返回空字符串与新的缓存;否则返回合并后的文本与空缓存。 */ preprocess(text: string, includeRemaining: boolean): { processedText: string; nextPendingText: string; }; } /** * 获取或创建预处理器单例实例。 * * @returns 预处理器实例。 */ export declare function createPreprocessText(): PreprocessText; export {};