1import * as Context from "effect/Context";
2import { GenericService } from "./Util/service.ts";
3
4export interface Self<
5 R extends { Type: string; LogicalId: string } = {
6 Type: string;
7 LogicalId: string;
8 },
9> extends Context.ServiceClass<Self<R>, `Self<${R["Type"]}>`, R> {}
10
11export const Self = GenericService<{
12 <R extends { Type: string; LogicalId: string }>(type: R["Type"]): Self<R>;
13}>()("Alchemy::Self");