/**
 * Health Check System
 * Comprehensive health monitoring for production systems
 */
import { EventEmitter } from 'events';
export interface HealthCheckConfig {
    interval?: number;
    timeout?: number;
    retries?: number;
    thresholds?: {
        healthy?: number;
        degraded?: number;
    };
}
export interface HealthCheck {
    name: string;
    check: () => Promise<HealthStatus>;
    critical?: boolean;
    timeout?: number;
}
export interface HealthStatus {
    status: 'healthy' | 'degraded' | 'unhealthy';
    message?: string;
    details?: any;
    responseTime?: number;
}
export interface SystemHealth {
    status: 'healthy' | 'degraded' | 'unhealthy';
    timestamp: Date;
    checks: Record<string, HealthStatus>;
    version: string;
    uptime: number;
}
export declare class HealthCheckSystem extends EventEmitter {
    private config;
    private checks;
    private lastResults;
    private checkInterval?;
    private startTime;
    constructor(config?: HealthCheckConfig);
    /**
     * Register a health check
     */
    register(): void;
    /**
     * Start health check monitoring
     */
    start(): void;
    /**
     * Stop health check monitoring
     */
    stop(): void;
    /**
     * Run all health checks
     */
    private runChecks;
    /**
     * Execute a single health check with retries
     */
    private executeCheck;
    /**
     * Get current system health
     */
    getSystemHealth(): SystemHealth;
    /**
     * Express middleware for health endpoint
     */
    expressMiddleware(): (req: any, res: any) => Promise<void>;
}
/**
 * Common health checks
 */
export declare const CommonHealthChecks: {
    /**
     * Database health check
     */
    database(knex: any): HealthCheck;
    /**
     * Redis health check
     */
    redis(client: any): HealthCheck;
    /**
     * Memory health check
     */
    memory(maxHeapMB?: number): HealthCheck;
    /**
     * Disk space health check
     */
    diskSpace(minFreeGB?: number): HealthCheck;
    /**
     * External API health check
     */
    externalApi(url: string, expectedStatus?: number): HealthCheck;
};
//# sourceMappingURL=health-check-system.d.ts.map