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