import { EntityRepository, EventBus, EventDispatcher, EventsByStream, EventStore, EventStoreWriter, Modifier, Modifiers, User } from '../core'; export interface EsContextClosed { eventBus: EventBus; eventStore: EventStore; eventDispatcher: EventDispatcher; entityRepository: EntityRepository; } export declare class EsContext implements EsContextClosed { readonly eventStore: EventStore; private readonly eventStoreWriter?; private readonly modifiers; readonly eventBus: EventBus; readonly eventDispatcher: EventDispatcher; readonly entityRepository: EntityRepository; constructor(eventStore: EventStore, eventStoreWriter?: EventStoreWriter, modifiers?: Modifiers, seededEvents?: EventsByStream); withModifier(id: string, modifier: Modifier): EsContext; withUser(user: User): EsContext; atTime(timestamp: number): EsContext; withEvents(eventsByStream: EventsByStream): EsContext; } export declare const defaultEsContext: EsContext;