import { Guid, Type } from '@cashfarm/lang'; import { AggregateRoot } from '../domain'; import { Identity } from '../domain/identity'; import { EventEnvelope } from './eventEnvelope'; export declare const IEventStore: symbol; export interface IEventStore { /** * Returns the next expected version * * @param {AggregateRoot} aggregate * @returns {Promise} * @memberof IEventStore */ save(aggregate: AggregateRoot): Promise; getEventsByAggregate(aggregateType: Type, aggregateId: Identity | Guid): Promise; }