/** * Health Event Publisher Port * * Defines the interface for publishing health-related events. * This port is implemented by adapters that can publish events. */ export interface HealthEventPublisher { /** * Publish a health check completed event */ publishHealthCheckCompleted(event: HealthCheckCompletedEvent): Promise; /** * Publish a health check failed event */ publishHealthCheckFailed(event: HealthCheckFailedEvent): Promise; /** * Publish a health check timeout event */ publishHealthCheckTimeout(event: HealthCheckTimeoutEvent): Promise; /** * Publish a connected event */ publishConnected(event: ConnectedEvent): Promise; /** * Publish a disconnected event */ publishDisconnected(event: DisconnectedEvent): Promise; /** * Publish a degraded event */ publishDegraded(event: DegradedEvent): Promise; /** * Publish a checking event */ publishChecking(event: CheckingEvent): Promise; } export interface HealthCheckCompletedEvent { healthy: boolean; responseTime: number; timestamp: Date; endpoint?: string; } export interface HealthCheckFailedEvent { error: string; timestamp: Date; endpoint?: string; } export interface HealthCheckTimeoutEvent { timestamp: Date; endpoint?: string; } export interface ConnectedEvent { timestamp: Date; responseTime: number; } export interface DisconnectedEvent { timestamp: Date; consecutiveFailures: number; } export interface DegradedEvent { timestamp: Date; reliability: number; } export interface CheckingEvent { timestamp: Date; }