import type { Logger } from 'pino';
import type { RedisService } from '../cache/redis.js';
import type { ElsClient } from '../elsClient.js';
/**
 * Health checks для k8s liveness/readiness probes.
 *
 * - `liveness` — всегда 200 OK, если процесс жив (EventLoop не deadlock'нут).
 *   Используется k8s `livenessProbe` для рестарта pod'а.
 *
 * - `readiness` — 200 если ВСЕ зависимости healthy:
 *     * Redis: `PING` → `PONG`
 *     * ELS upstream: HEAD/GET `/health` (или просто `/`)
 *   503 если хотя бы одна failed. Используется k8s `readinessProbe`
 *   (исключение pod'а из service endpoints).
 *
 * HTTP transport подключает эти функции к Express routes `/els/healthz` и
 * `/els/readyz` через DI.
 */
export interface LivenessResult {
    status: 'ok';
    uptimeSec: number;
    version: string;
}
export interface ReadinessResult {
    status: 'ready' | 'not_ready';
    checks: {
        redis: {
            ok: boolean;
            latencyMs?: number;
            error?: string;
        };
        upstream: {
            ok: boolean;
            latencyMs?: number;
            error?: string;
            status?: number;
        };
    };
}
export declare function checkLiveness(): LivenessResult;
export interface ReadinessDeps {
    redis?: RedisService | null;
    elsClient?: ElsClient | null;
    /** Override endpoint для probe; иначе используется heuristic /health. */
    elsHealthPath?: string;
    log?: Logger;
    /** Timeout per check, ms. */
    timeoutMs?: number;
}
export declare function checkReadiness(deps?: ReadinessDeps): Promise<ReadinessResult>;
//# sourceMappingURL=health.d.ts.map