import { EnhancedAuditTrail, AuditAlert } from './audit-trail'; import { CascadingRevocationManager } from './cascading-revocation-manager'; import { AgentIdentityManager } from '../agent-identity'; import { ActivityLogger } from '../activity/activity-logger'; export interface DashboardConfig { refreshInterval: number; alertRetentionDays: number; maxDisplayItems: number; enableRealTimeUpdates: boolean; alertNotifications: { email?: string[]; webhook?: string; slack?: string; }; } export interface DashboardMetrics { realTime: { activeAgents: number; ongoingRevocations: number; alertsInLast24h: number; systemHealth: 'healthy' | 'warning' | 'critical'; }; historical: { totalRevocations: number; successRate: number; avgProcessingTime: number; peakRevocationTime: string; }; trends: { dailyRevocations: Array<{ date: string; count: number; }>; revocationReasons: Array<{ reason: string; count: number; percentage: number; }>; serviceImpact: Array<{ service: string; revocations: number; agents: number; }>; }; alerts: { active: AuditAlert[]; recent: AuditAlert[]; summary: { critical: number; high: number; medium: number; low: number; }; }; } export interface DashboardFilter { timeRange: '1h' | '24h' | '7d' | '30d' | 'custom'; customRange?: { start: Date; end: Date; }; services?: string[]; users?: string[]; statuses?: string[]; alertTypes?: string[]; } /** * Monitoring dashboard for revocation and delegation audit trail * Provides real-time metrics, analytics, and alerting capabilities */ export declare class RevocationMonitoringDashboard { private auditTrail; private revocationManager; private agentManager; private activityLogger; private config; private metrics; private lastUpdate; private subscribers; private refreshTimer; constructor(auditTrail: EnhancedAuditTrail, revocationManager: CascadingRevocationManager, agentManager: AgentIdentityManager, activityLogger: ActivityLogger, config?: DashboardConfig); /** * Gets current dashboard metrics */ getMetrics(filter?: DashboardFilter): Promise; /** * Subscribes to real-time dashboard updates */ subscribe(subscriberId: string, callback: (metrics: DashboardMetrics) => void): void; /** * Unsubscribes from dashboard updates */ unsubscribe(subscriberId: string): void; /** * Forces a refresh of dashboard metrics */ refreshMetrics(filter?: DashboardFilter): Promise; /** * Gets revocation statistics for a specific time period */ getRevocationStats(filter: DashboardFilter): { totalRevocations: number; successfulRevocations: number; failedRevocations: number; averageProcessingTime: number; topReasons: Array<{ reason: string; count: number; }>; topServices: Array<{ service: string; count: number; }>; }; /** * Gets agent health overview */ getAgentHealthOverview(): { totalAgents: number; activeAgents: number; revokedAgents: number; agentsWithIssues: number; delegationDepthDistribution: Map; recentlyCreated: number; recentlyRevoked: number; }; /** * Generates dashboard report */ generateReport(filter: DashboardFilter, format?: 'json' | 'html' | 'pdf'): string; /** * Stops the dashboard and cleans up resources */ stop(): void; private startAutoRefresh; private subscribeToAlerts; private handleNewAlert; private shouldRefreshMetrics; private calculateTimeRange; private calculateRealTimeMetrics; private calculateHistoricalMetrics; private calculateTrends; private calculateAlertSummary; private getRecentAlerts; private notifySubscribers; private generateRecommendations; private generateHtmlReport; } //# sourceMappingURL=monitoring-dashboard.d.ts.map