import { PluginRuntimeError } from "../errors.mjs";
import { AnyPlugin, InitializedPlugin } from "../../types.mjs";
import { Effect } from "effect";

//#region src/runtime/services/plugin-lifecycle.service.d.ts
declare const PluginLifecycleService_base: Effect.Service.Class<PluginLifecycleService, "PluginLifecycleService", {
  readonly effect: Effect.Effect<{
    register: <T extends AnyPlugin>(plugin: InitializedPlugin<T>) => Effect.Effect<void, never, never>;
    unregister: (plugin: InitializedPlugin<AnyPlugin>) => Effect.Effect<void, never, never>;
    shutdown: (plugin: InitializedPlugin<AnyPlugin>) => Effect.Effect<void, PluginRuntimeError, never>;
    cleanup: () => Effect.Effect<void, never, never>;
  }, never, never>;
}>;
declare class PluginLifecycleService extends PluginLifecycleService_base {}
//#endregion
export { PluginLifecycleService };
//# sourceMappingURL=plugin-lifecycle.service.d.mts.map