import { AnyEvent } from '../aliases';
import { Entity, IEntity } from './Entity';
export interface IAggregate<Id_T> extends IEntity<Id_T> {
}
export declare abstract class Aggregate<Id_T> extends Entity<Id_T> implements IAggregate<Id_T> {
    private readonly events;
    constructor(id: Id_T, version: number, isDiscarded: boolean, registeredAt: Date, updatedAt: Date);
    addEvents(...events: AnyEvent[]): void;
    hasEvents(): boolean;
    nextEvent(): AnyEvent | undefined;
}
