/** 標點寬度政策。 */ export type PunctStyle = "quanjiao" | "kaiming" | "banjiao"; /** 語言分類。 */ export type LangClass = "zh-Hans" | "zh-Hant" | "ja" | "other"; /** 按選擇器逐元素覆寫標點樣式之規則(§4.3;如非段落/UI 元素用半角式)。 */ export interface StyleRule { selector: string; style: PunctStyle; } export interface LocaleConfig { /** 無 lang 祖先時之預設語言。 */ default: string; /** 全域標點擠壓預設(全角/開明/半角)。設則覆寫內建之逐語言預設, * 但仍可被 policy 之逐 lang 設定覆寫。未設則回退內建預設。 */ style?: PunctStyle; /** 語言分類 → 標點寬度政策之逐 lang 覆寫。 */ policy: Partial>; /** 按選擇器**逐元素**覆寫標點樣式(優先於 lang;與 `data-jz-style` 屬性同一機制)。 * 近祖先勝、同層屬性優先於選擇器。空/未設則不覆寫、純由 lang 決定。 */ stylePolicy?: StyleRule[]; } /** * 由節點向上找最近帶 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; /** * 解析節點之有效標點樣式。優先序:**逐元素覆寫**(`data-jz-style` 屬性/`stylePolicy` * 選擇器,近祖先勝)> 逐 lang `policy` > 全域 `style` > 內建逐語言預設。 */ export declare function resolveStyle(node: Node, config: LocaleConfig): PunctStyle;