import { BaseEntity } from './base.entity.js'; import { AggregateCreatedEvent, DomainEvent } from './events/index.js'; import type { Identifiable } from './types.js'; declare const AGGREGATE_SYMBOL: unique symbol; export declare const AGGREGATE_EVENTS_SYMBOL: unique symbol; export declare abstract class BaseAggregate extends BaseEntity { protected readonly [AGGREGATE_SYMBOL]: string; protected readonly [AGGREGATE_EVENTS_SYMBOL]: DomainEvent[]; protected constructor(params: Identifiable); getEvents(): DomainEvent[]; getNewEvets(): DomainEvent[]; static restoreFromEvents>(aggregateCtor: Class, createdEventCtor: Class>, any[]>, events: DomainEvent[]): Aggregate; protected applyEvents(events: DomainEvent[]): void; protected produceEvent(event: DomainEvent): void; private triggerListeners; } export {}; //# sourceMappingURL=base.aggregate.d.ts.map