/**
 * Domain Event Interface
 *
 * Base interface for all domain events
 *
 * @interface DomainEvent
 * @description Base interface for domain events
 */
export interface DomainEvent {
    /** Unique event identifier */
    eventId: string;
    /** Event type/name */
    eventType: string;
    /** Timestamp when the event occurred */
    occurredAt: Date;
    /** Aggregate ID that the event belongs to */
    aggregateId: string;
    /** Aggregate version when the event was created */
    aggregateVersion: number;
    /** Event metadata */
    metadata?: Record<string, any>;
}
/**
 * Base Domain Event Implementation
 *
 * @interface BaseDomainEvent
 */
export interface BaseDomainEvent extends DomainEvent {
    /** Event data payload */
    data: Record<string, any>;
}
//# sourceMappingURL=DomainEvent.d.ts.map