diff --git a/package.json b/package.json index 9e6011f..eb60dd1 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,10 @@ }, "dependencies": { "foundry-helpers": "github:reonZ/foundry-helpers" - } + }, + "exports": { + "./types": { + "types": "./src/types.d.ts" + } + } } diff --git a/src/types.d.ts b/src/types.d.ts index bfa4445..c838910 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -1,9 +1,20 @@ +import * as TriggerEngine from "engine/index"; import { NodeEntry as _NodeEntry, NodeField as _NodeField, TriggerHook as _TriggerHook, TriggerNode as _TriggerNode, -} from "engine"; +} from "engine/index"; + +declare module "@7h3laughingman/foundry-types/client/game.mjs" { + export default interface Game { + triggerEngine?: { + api: { + openBlueprintMenu: typeof TriggerEngine.TriggerApplication.openBlueprintMenu; + }; + }; + } +} declare global { namespace triggerEngine { @@ -12,4 +23,15 @@ declare global { const TriggerHook: typeof _TriggerHook; const TriggerNode: typeof _TriggerNode; } + + namespace Hooks { + function on(hook: "triggerEngine.registerApplication", callback: (register: typeof TriggerEngine.TriggerApplication.register) => void): number; + function on(hook: "triggerEngine.registerNodes", callback: (registerNodes: typeof TriggerEngine.TriggerApplication.registerNodes) => void): number; + function on(hook: "triggerEngine.registerTriggers", callback: (registerTriggers: typeof TriggerEngine.TriggerApplication.registerTriggers) => void): number; + function once(hook: "triggerEngine.registerApplication", callback: (register: typeof TriggerEngine.TriggerApplication.register) => void): number; + function once(hook: "triggerEngine.registerNodes", callback: (registerNodes: typeof TriggerEngine.TriggerApplication.registerNodes) => void): number; + function once(hook: "triggerEngine.registerTriggers", callback: (registerTriggers: typeof TriggerEngine.TriggerApplication.registerTriggers) => void): number; + } } + +export type { TriggerEngine }; \ No newline at end of file