import type { Event } from '@eventsource/eventstore/Event';
import type { SubscribableEventStore, StoreAllEvent } from '@eventsource/eventstore/EventStore';
import type { MongoClient, Long, Collection } from 'mongodb';
export declare const createCollection: (name: string) => import("fp-ts/lib/ReaderTaskEither").ReaderTaskEither<{
db: import("mongodb").Db;
}, Error, Collection>;
export declare const createCollectionIfNotExists: (name: string) => import("fp-ts/lib/ReaderTaskEither").ReaderTaskEither<{
db: import("mongodb").Db;
}, Error, Collection>;
export declare type MongoEvent = StoreAllEvent;
export declare type StoreSchema = {
id: E['id'];
type: E['type'];
data: E['data'];
metadata: E['metadata'];
stream: string;
timestamp: Long;
revision: Long;
};
export declare type StoreCollection = Collection>;
export declare type Dependencies = {
client: MongoClient;
collection: Collection>;
clockSkew?: number;
batchSize?: number;
subscribeStart?: number;
};
export declare const create: = Event>(dependencies: Dependencies) => SubscribableEventStore, StoreAllEvent>;
//# sourceMappingURL=EventStore.d.ts.map