import { Obj } from '@ephox/katamari'; import type { Bindable, Event } from './Event'; interface Events> { readonly registry: Record>; readonly trigger: Record void>; } /** :: {name : Event} -> Events */ const create = >(typeDefs: T): Events => { const registry: Record> = Obj.map(typeDefs, (event) => { return { bind: event.bind, unbind: event.unbind }; }); const trigger = Obj.map(typeDefs, (event) => { return event.trigger; }); return { registry, trigger }; }; export { create };