/** * Opaque handles to Rust-owned arenas. The napi-generated `index.d.ts` refers * to `MdastHandle`/`HastHandle`/`AnyHandle` as bare, undeclared names; these * global declarations give those signatures real types. The kind brand makes * passing a hast handle to an mdast entry point (a runtime error in Rust) a * compile error in TS. */ declare global { interface MdastHandle { readonly __satteriHandleKind: "mdast"; } interface HastHandle { readonly __satteriHandleKind: "hast"; } /** Handle accepted by kind-agnostic entry points (drop, serialize, …). */ type AnyHandle = MdastHandle | HastHandle; } type MdastHandleAlias = MdastHandle; type HastHandleAlias = HastHandle; type AnyHandleAlias = AnyHandle; export type { MdastHandleAlias as MdastHandle, HastHandleAlias as HastHandle, AnyHandleAlias as AnyHandle, };