import { ValueObject } from '@/data-helpers/value-object'; import { Exception } from '@/data-helpers/Exception'; import { DateTime } from '@/date-time'; import { CustomObject } from '@/utils'; export interface MessageHeadersData extends CustomObject { messageId: MessageId; messageName: MessageName; source: MessageSource; sourceId?: MessageSourceId; destination?: MessageDestination; version?: MessageVersion; correlationId?: MessageCorrelationId; timestamp?: DateTime; } export declare class MessageId extends ValueObject { static generate(): MessageSourceId; } export declare class MessageName extends ValueObject { } export declare class MessageSource extends ValueObject { } export declare class MessageSourceId extends ValueObject { static generate(): MessageSourceId; } export declare class MessageDestination extends ValueObject { } export declare class InvalidMessageVersionException extends Exception { } export declare class MessageVersion extends ValueObject { static first(): MessageVersion; validate(): void; } export declare class MessageCorrelationId extends ValueObject { static generate(): MessageSourceId; } export declare class MessageHeaders extends ValueObject { static with(messageName: MessageName, source: MessageSource): MessageHeaders; static with(messageName: MessageName, source: MessageSource, sourceId: MessageSourceId): MessageHeaders; static with(messageName: MessageName, source: MessageSource, sourceId: MessageSourceId, destination: MessageDestination): MessageHeaders; static with(messageName: MessageName, source: MessageSource, sourceId: MessageSourceId, destination: MessageDestination, version: MessageVersion): MessageHeaders; static with(messageName: MessageName, source: MessageSource, sourceId: MessageSourceId, destination: MessageDestination, version: MessageVersion, correlationId: MessageCorrelationId): MessageHeaders; }