import { Effect, Layer, Scope, Stream } from 'effect'; import { EventStreamId, EventStoreError } from '@codeforbreakfast/eventsourcing-store'; export interface InMemorySubscriptionManagerService { readonly subscribeToStream: (streamId: EventStreamId) => Effect.Effect, EventStoreError, Scope.Scope>; readonly unsubscribeFromStream: (streamId: EventStreamId) => Effect.Effect; readonly getSubscriptionMetrics: () => Effect.Effect<{ readonly activeStreams: number; readonly totalSubscribers: number; }, never, never>; } declare const InMemorySubscriptionManager_base: import("effect/Context").TagClass & Effect.Tag.Proxy & { use: (body: (_: InMemorySubscriptionManagerService) => X) => [X] extends [Effect.Effect] ? Effect.Effect : [X] extends [PromiseLike] ? Effect.Effect : Effect.Effect; }; export declare class InMemorySubscriptionManager extends InMemorySubscriptionManager_base { } export declare const makeInMemorySubscriptionManager: () => Effect.Effect; export declare const InMemorySubscriptionManagerLive: () => Layer.Layer; export {}; //# sourceMappingURL=subscriptionManager.d.ts.map