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<DashboardMetrics>;
    /**
     * 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<DashboardMetrics>;
    /**
     * 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<number, number>;
        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