/** * AnalyticsService - Anonymous telemetry capture contract. * * Provides a best-effort event API for runtime telemetry and a strict * `captureImmediate` method for call sites that need explicit error handling. * * @module AnalyticsService */ import { Effect, Layer, Context } from "effect"; export interface AnalyticsServiceShape { /** * Capture an event immediately; returns typed failure when capture fails. */ readonly record: ( event: string, properties?: Readonly>, ) => Effect.Effect; /** * Flush queued telemetry. */ readonly flush: Effect.Effect; } export class AnalyticsService extends Context.Service()( "t3/telemetry/Services/AnalyticsService", ) { static readonly layerTest = Layer.succeed(AnalyticsService, { record: () => Effect.void, flush: Effect.void, }); }