import { Effect, Layer, ParseResult } from 'effect'; import { type EventStore } from '../eventstore'; export declare const newEventStreamId: () => Effect.Effect, ParseResult.ParseError, never>; declare const FooEventStore_base: import("effect/Context").TagClass> & Effect.Tag.Proxy> & { use: (body: (_: EventStore<{ readonly bar: string; }>) => X) => [X] extends [Effect.Effect] ? Effect.Effect : [X] extends [PromiseLike] ? Effect.Effect : Effect.Effect; }; export declare class FooEventStore extends FooEventStore_base { } /** * Options for configuring the EventStore test suite */ export interface EventStoreTestOptions { /** * Whether the implementation supports horizontal scaling with multiple instances. * Set to false for in-memory implementations that don't have a shared backend. * @default true */ readonly supportsHorizontalScaling?: boolean; } /** * Reusable test suite for EventStore implementations * * @param name - Display name for the implementation (e.g., "In-memory", "PostgreSQL") * @param makeEventStore - Function that returns a Layer providing the EventStore implementation * @param options - Optional configuration for the test suite */ export declare function runEventStoreTestSuite(name: string, makeEventStore: () => Layer.Layer, options?: EventStoreTestOptions): void; export {}; //# sourceMappingURL=eventstore-test-suite.d.ts.map