import { SerializableAction } from '../Redux/SerializableAction'; import { DomainEvent, DomainEventConstructor } from 'ts-eventsourcing/Domain/DomainEvent'; import { Identity, IdentityConstructor } from 'ts-eventsourcing/ValueObject/Identity'; import { EntityName } from '../ValueObject/EntityName'; import { ReadModelAction, ReadModelMetadata } from './ReadModelAction'; export interface DomainEventMetadata extends ReadModelMetadata { aggregateId: AggregateId; } export interface DomainEventAction = DomainEventMetadata> extends ReadModelAction { event: Event; } export declare function asDomainEventAction = DomainEventMetadata>(action: SerializableAction, eventClass: DomainEventConstructor, ReadModelIdClass: IdentityConstructor, AggregateIdClass: IdentityConstructor): DomainEventAction; export declare function domainEventActionType(domainEvent: DomainEventConstructor | DomainEvent, entity: EntityName): string;