import { IDomainEventPublisher, DomainEventHandler, DomainEvent } from '../../domain/shared/events'; /** * In-Memory Domain Event Publisher * Simple implementation for development and testing */ export declare class InMemoryDomainEventPublisher implements IDomainEventPublisher { private handlers; private publishedEvents; /** * Publish a domain event to all registered handlers */ publish(event: DomainEvent): Promise; /** * Subscribe to domain events */ subscribe(eventType: string, handler: DomainEventHandler): void; /** * Unsubscribe from domain events */ unsubscribe(eventType: string, handler: DomainEventHandler): void; /** * Get all published events (for testing/debugging) */ getPublishedEvents(): readonly DomainEvent[]; /** * Get published events of specific type */ getPublishedEventsOfType(eventType: string): DomainEvent[]; /** * Clear published events (for testing) */ clearPublishedEvents(): void; /** * Get subscription statistics */ getSubscriptionStats(): Record; /** * Reset publisher state (for testing) */ reset(): void; /** * Simple error logging (in production, use proper logging framework) */ private logError; } /** * Global instance for application use */ export declare const inMemoryDomainEventPublisher: InMemoryDomainEventPublisher; //# sourceMappingURL=InMemoryDomainEventPublisher.d.ts.map