import { Guid } from '@cashfarm/lang'; import { IEntity, Entity } from './entity'; import { IDomainEvent } from './domainEvent'; import { Identity } from './identity'; export interface IAggregateRoot | Guid> extends IEntity { readonly id: TId; } /** * Base implementation of an aggregate root. * * @export * @class AggregateRoot * @template TId */ export declare abstract class AggregateRoot | Guid> extends Entity implements IAggregateRoot { protected _events: IDomainEvent[]; }