import type { Effect, Scope } from "effect" export interface Registration { readonly dispose: Effect.Effect } export interface Reload { readonly reload: () => Effect.Effect } export type Hooks = { readonly [Name in keyof Spec]: ( callback: (input: Spec[Name]) => Effect.Effect | void, ) => Effect.Effect }