export interface Registration { readonly dispose: () => Promise } export interface Reload { readonly reload: () => Promise } export type Hooks = { readonly [Name in keyof Spec]: (callback: (input: Spec[Name]) => Promise | void) => Promise }