import * as Effect from "effect/Effect"; import type { BaseExecutionContext } from "../ExecutionContext.ts"; import type { HttpEffect } from "../Http.ts"; export interface FunctionContext extends BaseExecutionContext { serve(handler: HttpEffect): Effect.Effect; listen( handler: FunctionListener, ): Effect.Effect; listen( effect: Effect.Effect, never, InitReq>, ): Effect.Effect; exports: Effect.Effect, never, never>; } export type FunctionListener = ( event: any, ) => Effect.Effect | void;