/** * The source code for this function was inspired by vue-apollo's `useEventHook` util * https://github.com/vuejs/vue-apollo/blob/v4/packages/vue-apollo-composable/src/util/useEventHook.ts */ type EventHookOn = (fn: (param: T) => void) => { off: () => void; }; type EventHookOff = (fn: (param: T) => void) => void; type EventHookTrigger = (param: T) => Promise; interface EventHook { on: EventHookOn; off: EventHookOff; trigger: EventHookTrigger; } /** * Utility for creating event hooks. * * @see https://solidjs-use.github.io/solidjs-use/shared/createEventHook */ declare function createEventHook(): EventHook; export { EventHook, EventHookOff, EventHookOn, EventHookTrigger, createEventHook };