import { Event, EventMetadata } from "../common"; export interface DomainEvent> extends Event { readonly aggregateId: string; readonly version: number; readonly metadata?: EventMetadata; readonly eventStoreId?: string; readonly projectionVersion?: number; } export declare abstract class BaseDomainEvent> implements DomainEvent { readonly id: string; readonly type: string; readonly timestamp: Date; readonly data: TData; readonly aggregateId: string; readonly version: number; readonly metadata?: EventMetadata; readonly eventStoreId?: string; readonly projectionVersion?: number; constructor(type: string, aggregateId: string, data: TData, version?: number, metadata?: EventMetadata, eventStoreId?: string, projectionVersion?: number); private generateId; }