import type { Worker } from 'bullmq';
export type HealthCheckResult = {
    timestamp: Date;
    status: 'healthy' | 'degraded' | 'critical';
    latency: number;
    message?: string;
    meta?: Record<string, unknown>;
};
type HealthMonitorConfig = {
    enabled: boolean;
    tickIntervalMs: number;
    concurrencyLimit: number;
    checkTimeoutMs: number;
    intervalHealthyMs: number;
    intervalSuspectMs: number;
    failureThreshold: number;
    historyLimit: number;
};
type WorkerMonitorConfig = {
    degradedCallback?: (name: string, result: HealthCheckResult) => void;
    criticalCallback?: (name: string, result: HealthCheckResult) => void;
    [key: string]: unknown;
};
export declare const HealthMonitor: Readonly<{
    configure: (newConfig: Partial<HealthMonitorConfig>) => void;
    register: (name: string, worker: Worker, queueName: string) => void;
    unregister: (name: string) => void;
    start: () => void;
    stop: () => void;
    startMonitoring: (name: string, monitorConfig?: WorkerMonitorConfig) => void;
    stopMonitoring: (name: string) => void;
    updateConfig: (name: string, monitorConfig: WorkerMonitorConfig) => void;
    getCurrentHealth: (name: string) => HealthCheckResult | null;
    getHealthHistory: (name: string, limit?: number) => HealthCheckResult[];
    getHealthTrend: (name: string) => {
        uptime: number;
        samples: number;
    };
    getSummary: () => Promise<unknown>;
    shutdown: () => void;
}>;
export {};
//# sourceMappingURL=HealthMonitor.d.ts.map