/**
 * @iota-big3/sdk-security - Performance Monitoring
 * Real-time metrics collection and analysis for production readiness
 */
import { EventEmitter } from 'events';
export interface PerformanceMetric {
    name: string;
    value: number;
    unit: 'ms' | 'count' | 'percent' | 'bytes';
    timestamp: number;
    tags?: Record<string, string>;
}
export interface PerformanceThreshold {
    metric: string;
    operator: '<' | '>' | '<=' | '>=' | '==';
    value: number;
    action: 'alert' | 'degrade' | 'circuit_break';
}
export interface PerformanceSnapshot {
    timestamp: number;
    metrics: {
        authLatencyP50: number;
        authLatencyP95: number;
        authLatencyP99: number;
        authSuccessRate: number;
        authFailureRate: number;
        rbacCheckLatency: number;
        abacCheckLatency: number;
        accessDecisionCacheHitRate: number;
        scanQueueDepth: number;
        averageScanDuration: number;
        scanThroughput: number;
        complianceCheckDuration: number;
        evidenceCollectionRate: number;
        auditLogWriteLatency: number;
        threatDetectionLatency: number;
        anomalyDetectionRate: number;
        falsePositiveRate: number;
        cpuUsage: number;
        memoryUsage: number;
        eventLoopLag: number;
        activeConnections: number;
    };
    alerts: PerformanceAlert[];
}
export interface PerformanceAlert {
    id: string;
    timestamp: number;
    metric: string;
    value: number;
    threshold: number;
    severity: 'low' | 'medium' | 'high' | 'critical';
    message: string;
}
export declare class PerformanceMonitor extends EventEmitter {
    private config;
    private metrics;
    private thresholds;
    private alerts;
    private isActive;
    private collectionInterval?;
    private metricsHistory;
    private operationTimers;
    private operationCounts;
    private circuitBreakers;
    constructor(config: {
        collectionIntervalMs: number;
        historySize: number;
        enableAutoScaling?: boolean;
        enableCircuitBreakers?: boolean;
    });
    private setupDefaultThresholds;
    start(): Promise<void>;
    stop(): Promise<void>;
    startOperation(operationName: string, tags?: Record<string, string>): string;
    endOperation(operationId: string, success?: boolean): void;
    private updateCircuitBreaker;
    isCircuitOpen(operation: string): boolean;
    recordMetric(metric: PerformanceMetric): void;
    private checkThresholds;
    private evaluateThreshold;
    private handleThresholdViolation;
    private getSeverity;
    private collectMetrics;
    private calculatePercentile;
    private getAverageMetric;
    private getLatestMetric;
    private calculateSuccessRate;
    private calculateThroughput;
    private calculateRate;
    private calculateFalsePositiveRate;
    private calculateCpuUsage;
    private calculateMemoryUsage;
    private measureEventLoopLag;
    getSnapshot(): PerformanceSnapshot | null;
    getHistory(duration?: number): PerformanceSnapshot[];
    getAlerts(severity?: 'low' | 'medium' | 'high' | 'critical'): PerformanceAlert[];
    exportMetrics(format?: 'prometheus' | 'json'): string;
    private toPrometheusFormat;
}
//# sourceMappingURL=performance-monitor.d.ts.map