import type { JuzhenOptions, Pass, ResolvedOptions } from "./types.js"; export type { JuzhenOptions, ResolvedOptions, Pass }; export type { CharClassOverride, BdSubclass, Ruleset, Bias, BiasTable } from "./types.js"; /** 正規化公開選項為內部 ResolvedOptions。 */ export declare function normalizeOptions(opts?: JuzhenOptions): ResolvedOptions; export interface Juzhen { render(root?: Element | string): void; revert(root?: Element | string): void; /** revert 後重新 render 同一(子)樹(C3 增量便利);等價於 revert(root) + render(root)。 * 頁面局部變化後,對受影響之最近塊調用即可只重處理該子樹、免全樹重掃。 */ rerender(root?: Element | string): void; /** 清除該(子)樹之內部元素快取(C1)。**revert 已自動失效其子樹**,故僅在「改了既有元素之 * 分類相關屬性(class/data-jz-*/lang 等)但不走 revert」時才需顯式調用,以免下次 render * 沿用陳舊分類。內容(子節點/文本)變化不改分類、無需 invalidate(但須 revert+render 該塊 * 方能重處理)。 */ invalidate(root?: Element | string): void; /** 開始觀察 root 子樹之 DOM 變化(C2 增量模式,opt-in):內容/分類屬性變化時自動只重處理 * 受影響之最近塊(revert+render),新增之塊直接 render——免消費端手動 rerender 或全樹重掃。 * **juzhen 自身之變更**(jz-* 注入、data-jz* 屬性)於處理期間暫停觀察、絕不自觸發。需 * MutationObserver(瀏覽器/jsdom 有;無則 no-op)。重複 observe 前自動 disconnect 前者。 */ observe(root?: Element | string): void; /** 停止 C2 觀察。 */ disconnect(): void; readonly options: ResolvedOptions; } /** 建立一個聚珍實例。 */ export declare function createJuzhen(opts?: JuzhenOptions): Juzhen;