/** 標點寬度政策。 */ export type PunctStyle = "quanjiao" | "kaiming" | "banjiao"; /** 語言分類。 */ export type LangClass = "zh-Hans" | "zh-Hant" | "ja" | "other"; export interface LocaleConfig { /** 無 lang 祖先時之預設語言。 */ default: string; /** 全域標點擠壓預設(全角/開明/半角)。設則覆寫內建之逐語言預設, * 但仍可被 policy 之逐 lang 設定覆寫。未設則回退內建預設。 */ style?: PunctStyle; /** 語言分類 → 標點寬度政策之逐 lang 覆寫(最高優先)。 */ policy: Partial>; } /** * 由節點向上找最近帶 lang 屬性之祖先,回傳小寫值;無則回傳 fallback。 */ export declare function effectiveLang(node: Node, fallback: string): string; /** * 將 BCP-47 語言標籤歸類。前綴以子標籤邊界比對('zh-tw' 命中 zh-Hant, * 'zhx' 不命中 zh)。香港/台灣繁體歸 zh-Hant;含 Hant/Hans 子標籤者優先。 */ export declare function classify(lang: string): LangClass; /** * 回傳該語言分類在給定 config 下之標點寬度政策。優先序: * 逐 lang policy > 全域 style > 內建逐語言預設 DEFAULT_POLICY。 */ export declare function styleFor(langClass: LangClass, config: LocaleConfig): PunctStyle; /** 解析節點之有效政策(lang → 分類 → 政策)。 */ export declare function resolveStyle(node: Node, config: LocaleConfig): PunctStyle;