import type { NonEmptyReadonlyArray } from "effect-app/Array" import type * as Effect from "effect-app/Effect" import type * as Scope from "effect/Scope" import { RequestContext } from "../RequestContext.js" export interface QueueBase { drain: ( makeHandleEvent: (ks: DrainEvt) => Effect.Effect, sessionId?: string ) => Effect.Effect publish: ( ...messages: NonEmptyReadonlyArray ) => Effect.Effect } export interface QueueMakerOps {} export const QueueMaker: QueueMakerOps = {} export const QueueMeta = RequestContext