polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
75 lines • 3.06 kB
TypeScript
import { EventEmitter } from 'events';
import { AlertHistoryManager } from './alert-history-manager';
import { AlertRuleManager } from './alert-rule-manager';
import { Alert, AlertFilter, AlertEvaluationContext, AlertSystemConfig } from '../types/alert';
export declare class AlertManager extends EventEmitter {
private alerts;
private historyManager;
private ruleManager;
private config;
private isRunning;
private evaluationInterval;
private cleanupInterval;
constructor(config?: Partial<AlertSystemConfig>);
private setupEventHandlers;
private setupCleanupInterval;
start(): void;
stop(): void;
createAlert(alertData: Omit<Alert, 'id' | 'timestamp' | 'acknowledged' | 'status'>): Alert;
acknowledgeAlert(alertId: string, user?: string): boolean;
resolveAlert(alertId: string, user?: string): boolean;
ignoreAlert(alertId: string, user?: string): boolean;
deleteAlert(alertId: string): boolean;
addAlertNotes(alertId: string, notes: string, user?: string): boolean;
getAlerts(): Alert[];
getAlert(alertId: string): Alert | undefined;
getFilteredAlerts(filter?: AlertFilter): Alert[];
acknowledgeBatch(alertIds: string[], user?: string): {
success: string[];
failed: string[];
};
resolveBatch(alertIds: string[], user?: string): {
success: string[];
failed: string[];
};
clearAllAlerts(): number;
evaluateAlerts(context?: AlertEvaluationContext): void;
getStatistics(): {
totalEntries: number;
uniqueAlerts: number;
actionCounts: Record<string, number>;
userCounts: Record<string, number>;
timeRange: {
earliest: number;
latest: number;
} | null;
levelCounts: Record<import("../types/alert").AlertLevel, number>;
typeCounts: Record<import("../types/alert").AlertType, number>;
statusCounts: Record<import("../types/alert").AlertStatus, number>;
};
getRecentActivity(hours?: number): {
totalAlerts: number;
newAlerts: number;
acknowledgedAlerts: number;
resolvedAlerts: number;
activeUsers: string[];
topAlertTypes: Array<{
type: import("../types/alert").AlertType;
count: number;
}>;
};
exportAlerts(format?: 'json' | 'csv'): string;
importAlerts(data: string, format?: 'json', merge?: boolean): {
imported: number;
errors: string[];
};
getAlertHistory(filter?: AlertFilter, limit?: number, offset?: number): import("../types/alert").AlertHistoryEntry[];
searchAlertHistory(searchText: string, searchFields?: Array<'title' | 'message' | 'source' | 'action' | 'user'>, limit?: number): import("../types/alert").AlertHistoryEntry[];
getRuleManager(): AlertRuleManager;
getHistoryManager(): AlertHistoryManager;
private performAutomaticCleanup;
private enforceMemoryLimits;
private generateAlertId;
destroy(): Promise<void>;
}
//# sourceMappingURL=alert-manager.d.ts.map