/**
 * Health check system for monitoring application status
 */
import { McpLogger } from './logger';
import { NexonApiClient } from '../api/nexon-client';
import { MemoryCache } from './cache';
export interface HealthStatus {
    status: 'healthy' | 'unhealthy' | 'degraded';
    timestamp: string;
    uptime: number;
    version?: string;
    details: Record<string, ComponentHealth>;
}
export interface ComponentHealth {
    status: 'healthy' | 'unhealthy' | 'degraded';
    lastCheck: string;
    responseTime?: number;
    error?: string;
    details?: Record<string, any>;
}
export interface HealthCheckOptions {
    timeout?: number;
    retries?: number;
    interval?: number;
}
export declare abstract class HealthChecker {
    abstract name: string;
    abstract check(options?: HealthCheckOptions): Promise<ComponentHealth>;
}
export declare class ApiHealthChecker extends HealthChecker {
    private apiClient;
    name: string;
    constructor(apiClient: NexonApiClient);
    check(options?: HealthCheckOptions): Promise<ComponentHealth>;
}
export declare class CacheHealthChecker extends HealthChecker {
    private cache;
    name: string;
    constructor(cache: MemoryCache);
    check(): Promise<ComponentHealth>;
}
export declare class MemoryHealthChecker extends HealthChecker {
    name: string;
    check(): Promise<ComponentHealth>;
}
export declare class ProcessHealthChecker extends HealthChecker {
    name: string;
    private startTime;
    check(): Promise<ComponentHealth>;
    private formatUptime;
}
export declare class HealthCheckManager {
    private checkers;
    private logger;
    private lastCheck?;
    constructor(logger?: McpLogger);
    registerChecker(checker: HealthChecker): void;
    runHealthChecks(options?: HealthCheckOptions): Promise<HealthStatus>;
    getLastCheck(): HealthStatus | undefined;
    getQuickStatus(): Promise<{
        status: string;
        uptime: number;
        timestamp: string;
    }>;
    startPeriodicChecks(interval?: number): NodeJS.Timeout;
}
export declare function createDefaultHealthManager(apiClient?: NexonApiClient, cache?: MemoryCache): HealthCheckManager;
export declare const defaultHealthManager: HealthCheckManager;
//# sourceMappingURL=health-check.d.ts.map