import type * as AsyncData from "@typed/async-data" import { Effect, type Fiber, type Stream, type SubscriptionRef } from "effect" export interface MutationService { readonly state: SubscriptionRef.SubscriptionRef> readonly mutate: (...key: K) => Effect.Effect | AsyncData.Failure> readonly forkMutate: (...key: K) => Effect.Effect | AsyncData.Failure>, state: Stream.Stream>, ]> } export const Tag = (id: Id) => < Self, K extends readonly unknown[], A, E = never, >() => Effect.Tag(id)>()