/**
 * Text Wrap - core-contract
 *
 * 本文件定义“跨端一致的基础口径”所需的最小类型集合。
 * 注意：这里的索引（start/end）默认以 normalizedText（归一化后的文本）为基准。
 */

export type Lang = 'TC' | 'EN';

export type WhitespacePolicy = 'NORMALIZE' | 'PRESERVE';

export type Token = {
  /** token 的原始文本（EN：词；TC：字符簇） */
  text: string;
  /** token 在 normalizedText 中的起始索引（包含） */
  start: number;
  /** token 在 normalizedText 中的结束索引（不包含） */
  end: number;
};

export type NormalizeWhitespaceResult = {
  /**
   * 归一化后的文本。
   * - NORMALIZE：折叠连续空白为单空格，并去首尾空白
   * - PRESERVE：仅去首尾空白（内部空白保持原样）
   */
  normalizedText: string;
  /** 是否发生过“空白折叠/trim/非单空格分隔”等（用于后续 meta 打点） */
  hadMultiWhitespace: boolean;
};

export type CoreConfig = {
  whitespacePolicy: WhitespacePolicy;
  /**
   * EN 关键词命中：两端可剥离的常见标点集合（必须全端一致）。
   * 来源建议与默认值参考：`设计说明文档/文档换行算法.md`（v1.2.1）2.3.1A-1
   */
  punctuationStripSetEN: string[];
};

