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>;
};
