/**
 * Dashboard Event Publisher Port
 * 
 * Defines the interface for publishing dashboard-related events.
 */

/**
 * Dashboard accessed event
 */
export interface DashboardAccessedEvent {
  type: 'dashboard_accessed';
  driverId: string;
  timestamp: Date;
}

/**
 * Dashboard error event
 */
export interface DashboardErrorEvent {
  type: 'dashboard_error';
  driverId: string;
  error: string;
  timestamp: Date;
}

/**
 * Dashboard Event Publisher Interface
 * 
 * Publishes events related to dashboard operations.
 */
export interface DashboardEventPublisher {
  /**
   * Publish a dashboard accessed event
   * @param event - The event to publish
   */
  publishDashboardAccessed(event: DashboardAccessedEvent): Promise<void>;

  /**
   * Publish a dashboard error event
   * @param event - The event to publish
   */
  publishDashboardError(event: DashboardErrorEvent): Promise<void>;
}
