File size: 379 Bytes
0dbc9de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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>
}
|