/**
 * Type definitions for health monitoring system
 */
/**
 * Health check result interface
 */
export interface HealthCheckResult {
    status: 'healthy' | 'degraded' | 'unhealthy';
    score: number;
    checks: HealthCheck[];
    timestamp: string;
    duration: number;
    correlationId: string;
    summary: {
        total: number;
        passed: number;
        failed: number;
        warnings: number;
    };
    recommendations: string[];
}
/**
 * Individual health check interface
 */
export interface HealthCheck {
    name: string;
    status: 'pass' | 'fail' | 'warn';
    score: number;
    duration: number;
    message?: string;
    details?: Record<string, unknown>;
    error?: string;
    threshold?: {
        warning: number;
        critical: number;
    };
}
/**
 * System metrics interface
 */
export interface SystemMetrics {
    timestamp: string;
    memory: {
        heapUsed: number;
        heapTotal: number;
        external: number;
        rss: number;
        heapUsagePercent: number;
    };
    cpu: {
        usage: number;
        loadAverage: number[];
    };
    process: {
        uptime: number;
        pid: number;
        nodeVersion: string;
        platform: string;
        arch: string;
    };
    logging: {
        totalLogEntries: number;
        logRate: number;
        errorRate: number;
        averageLogSize: number;
        oldestLogEntry?: string;
        newestLogEntry?: string;
    };
    requests: {
        totalRequests: number;
        activeRequests: number;
        averageDuration: number;
        errorRate: number;
        requestsPerSecond: number;
    };
    performance: {
        operationCount: number;
        averageDuration: number;
        slowOperations: number;
        memoryIntensiveOps: number;
    };
}
/**
 * Health check configuration
 */
export interface HealthCheckConfig {
    enabled: boolean;
    interval: number;
    timeout: number;
    thresholds: {
        memory: {
            heapUsageWarning: number;
            heapUsageCritical: number;
            externalWarning: number;
            externalCritical: number;
        };
        performance: {
            averageDurationWarning: number;
            averageDurationCritical: number;
            errorRateWarning: number;
            errorRateCritical: number;
        };
        logging: {
            logRateWarning: number;
            logRateCritical: number;
            errorRateWarning: number;
            errorRateCritical: number;
        };
        requests: {
            durationWarning: number;
            durationCritical: number;
            errorRateWarning: number;
            errorRateCritical: number;
        };
    };
    alerts: {
        enabled: boolean;
        channels: ('console' | 'file' | 'webhook')[];
        webhookUrl?: string;
        cooldown: number;
    };
}
//# sourceMappingURL=types.d.ts.map