import { HealthStatus, Config } from '../types.js';
import { VoyageClient } from '../clients/voyage-client.js';
import { QdrantVectorClient } from '../clients/qdrant-client.js';
export declare class HealthMonitorService {
    private config;
    private startTime;
    private voyageClient;
    private qdrantClient;
    private lastHealthCheck;
    private healthCheckInterval;
    constructor(config: Config, voyageClient: VoyageClient, qdrantClient: QdrantVectorClient);
    /**
     * Get comprehensive health status
     */
    getHealthStatus(): Promise<HealthStatus>;
    /**
     * Check Qdrant service health
     */
    private checkQdrantHealth;
    /**
     * Check Voyage AI service health
     */
    private checkVoyageHealth;
    /**
     * Check file watcher service health
     */
    private checkFileWatcherHealth;
    /**
     * Get system metrics
     */
    private getSystemMetrics;
    /**
     * Create a failed service health object
     */
    private getFailedServiceHealth;
    /**
     * Start periodic health checks
     */
    private startHealthChecks;
    /**
     * Stop periodic health checks
     */
    stopHealthChecks(): void;
    /**
     * Get simple health status for quick checks
     */
    getSimpleHealth(): Promise<{
        status: string;
        timestamp: Date;
    }>;
    /**
     * Check if the service is ready to serve requests
     */
    isReady(): Promise<boolean>;
    /**
     * Check if the service is alive (basic liveness check)
     */
    isAlive(): boolean;
    /**
     * Get detailed service statistics
     */
    getDetailedStats(): Promise<{
        health: HealthStatus;
        performance: {
            averageResponseTime: number;
            requestCount: number;
            errorRate: number;
        };
        resources: {
            memoryUsage: number;
            uptime: number;
            lastHealthCheck: Date;
        };
    }>;
    /**
     * Get health summary for logging/monitoring
     */
    getHealthSummary(): string;
    /**
     * Cleanup resources
     */
    destroy(): void;
}
