import type { Effect, Scope } from "effect" export type Transform = (draft: Draft) => Effect.Effect | void export interface Registration { readonly dispose: Effect.Effect } export interface Transformable { transform(callback: Transform): Effect.Effect rebuild(): Effect.Effect } export interface Hookable { hook(name: Name, callback: Hooks[Name]): Effect.Effect }