import { DomainEventHandler } from '../../../api/event/domain-event.handler'; import { AggregateId } from '../../../api/tactical/aggregate/aggregate-id'; import { DomainEvent } from '../../../api/event/domain-event'; import { MultiDomainEventHandler } from '../../../api/event/multi-domain-event.handler'; import { DomainEventType } from '../../../api/event/domain-event-type'; export declare function domainEventHandlerFactoryAsFactory>(domainEventHandlerType: DomainEventHandler): unknown; export declare function domainEventHandlerFactory>(domainEventHandler: DomainEventHandler): DomainEventHandlerImpl; export declare function multiDomainEventHandlerFactory>(domainEventHandler: MultiDomainEventHandler): DomainEventHandlerImpl; export declare class DomainEventHandlerImpl> { private readonly domainEventHandler; private readonly events; private readonly eventTypes; constructor(domainEventHandler: DomainEventHandler | MultiDomainEventHandler, events: Array>); handleEvent(event: E): void; forEvents(events: Array): boolean; private createDomainEventTypes; private createDomainEventInstance; }