import { Observable } from 'rxjs';
import { AdminMonitoringEvent, AdminMonitoringEventFilters, AdminQueue, AdminWebhookDelivery } from '../models/admin-monitoring.model';

/**
 * Contract for monitoring data sources. AdminMonitoringLocalGateway implements
 * this today; a future HTTP gateway implements the same shape so the facade
 * and page stay untouched when the backend lands (same pattern as
 * AdminProductsGateway / AdminOrdersGateway).
 */
export interface AdminMonitoringGateway {
  loadEvents(filters: AdminMonitoringEventFilters): Observable<AdminMonitoringEvent[]>;
  loadQueues(): Observable<AdminQueue[]>;
  loadWebhooks(): Observable<AdminWebhookDelivery[]>;
}
