import { Effect, Layer, Option } from 'effect'; import { EventStreamPosition } from '@codeforbreakfast/eventsourcing-store'; declare const EventStreamTracker_base: import("effect/Context").TagClass(position: EventStreamPosition, event: T) => Effect.Effect, never, never>; }>> & Effect.Tag.Proxy(position: EventStreamPosition, event: T) => Effect.Effect, never, never>; }>> & { use: (body: (_: Readonly<{ /** * Process an event, ensuring proper ordering and deduplication * Returns Some(event) if the event should be processed, None if it's a duplicate or out of order */ readonly processEvent: (position: EventStreamPosition, event: T) => Effect.Effect, never, never>; }>) => X) => [X] extends [Effect.Effect] ? Effect.Effect : [X] extends [PromiseLike] ? Effect.Effect : Effect.Effect; }; /** * EventStreamTracker service for tracking event ordering and deduplication * * Note: The processEvent method has a generic type parameter, which means * it cannot use Effect service accessors. This is by design and doesn't * affect functionality - the service is accessed via yield* EventStreamTracker. */ export declare class EventStreamTracker extends EventStreamTracker_base { } /** * Implementation of EventStreamTracker service */ export declare const EventStreamTrackerLive: () => Layer.Layer; export {}; //# sourceMappingURL=eventStreamTracker.d.ts.map