import { expectType } from "tsd"; import { Configurer, Userscript, type UserscriptOptionItem } from "../lib/configurer"; import "../lib/index"; const configurer = window.UserScripters?.Userscripts?.Configurer; expectType | undefined>(configurer); expectType>>(configurer!.render()); const userscript = configurer?.register("test-script"); expectType | undefined>(userscript); const item: UserscriptOptionItem = { disabled: true, label: "Test Item", value: "test value" }; expectType>(userscript!.option("test-option", { desc: "Option for tsd testing", def: "ok", disabledWhen: { option2: false, }, items: [item], type: "text" })); expectType>(userscript!.options({ option1: { desc: "Option for tsd testing", def: "ok", items: [item], } }, { type: "text" })); expectType>(userscript!.load("test-option")); expectType>(userscript!.save("test-option", "not ok")); expectType>(userscript!.remove("test-option")); expectType>(userscript!.clear()); window.addEventListener("userscript-configurer-change", (event) => { expectType(event); expectType(event.detail.name); expectType(event.detail.oldValue); expectType(event.detail.script); expectType(event.detail.value); }); window.addEventListener("userscript-configurer-load", (event) => { expectType(event); });