import { Guid, ConcreteType } from '@cashfarm/lang'; import { IDomainEvent, Identity, IRepository } from '../domain'; import { IEventStore } from './iEventStore'; import { IEventBus } from './iEventBus'; import { ESAggregateRoot } from './esAggregateRoot'; export declare abstract class ESRepository, TId extends Identity | Guid> implements IRepository { protected storage: IEventStore; protected aggtClass: ConcreteType; protected eventBus: IEventBus; constructor(storage: IEventStore, aggtClass: ConcreteType, eventBus?: IEventBus); save(aggregate: TAggregate): Promise; getById(id: TId): Promise; }