UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

86 lines 2.4 kB
import { EventEmitter } from 'events'; import { BaseComponent } from './base.component'; import { ComponentConfig, StreamMetrics } from '../types/monitoring'; export interface StreamMetricsPanelConfig extends ComponentConfig { refreshInterval: number; maxDataPoints: number; channels: string[]; alertThresholds: { bitrate: { min: number; max: number; }; fps: { min: number; max: number; }; viewerCount: { max: number; }; }; chartStyle: { lineColors: string[]; backgroundColor: string; foregroundColor: string; }; } export interface MetricsDataPoint { timestamp: Date; bitrate: number; fps: number; viewerCount: number; bandwidth: number; channelId: string; } export interface ChannelMetricsData { channelId: string; channelName?: string; isActive: boolean; dataPoints: MetricsDataPoint[]; alerts: AlertInfo[]; lastUpdate: Date; } export interface AlertInfo { type: 'bitrate' | 'fps' | 'viewerCount'; level: 'warning' | 'error'; message: string; timestamp: Date; value: number; threshold: number; } export declare class StreamMetricsPanel extends BaseComponent { private lineChart; private channelsData; private currentChannelId; private container; private headerBox; private noDataBox; private alertBox; private lastUpdateTime; private alertCooldowns; constructor(config: StreamMetricsPanelConfig, eventBus: EventEmitter); protected createWidget(): void; private setupKeyBindings; render(): void; update(data: StreamMetrics | StreamMetrics[] | { channels: StreamMetrics[]; }): void; private processChannelMetrics; private checkAlerts; private updateHeader; private updateAlertDisplay; private updateChart; private switchToNextChannel; private switchToPreviousChannel; private clearAlerts; private emitAlert; private emitChannelSwitch; private getNoChannelMessage; private getNoDataMessage; private getConfig; getCurrentChannelData(): ChannelMetricsData | null; getAllChannelsData(): Map<string, ChannelMetricsData>; setCurrentChannel(channelId: string): void; destroy(): void; } //# sourceMappingURL=stream-metrics.panel.d.ts.map