import { EventEmitter } from 'events'; import { ServiceDiscoveryConfig } from '../types.js'; export interface ServiceInstance { id: string; name: string; version: string; host: string; port: number; protocol: 'http' | 'https' | 'tcp' | 'udp'; status: 'healthy' | 'unhealthy' | 'unknown'; lastSeen: Date; tags: string[]; metadata: Record; } export declare class ServiceDiscoveryManager extends EventEmitter { private config; private services; private healthCheckInterval; private registrationInterval; constructor(config: ServiceDiscoveryConfig); /** * Start service discovery */ start(): Promise; /** * Stop service discovery */ stop(): Promise; /** * Register this service instance */ registerSelf(): Promise; /** * Deregister this service instance */ deregisterSelf(): Promise; /** * Discover all available services */ discoverServices(): Promise; /** * Find services by name */ findServices(name: string): ServiceInstance[]; /** * Find services by tag */ findServicesByTag(tag: string): ServiceInstance[]; /** * Get service by ID */ getService(id: string): ServiceInstance | undefined; /** * Get all healthy services */ getHealthyServices(): ServiceInstance[]; /** * Load balance - get next available instance */ getNextInstance(serviceName: string): ServiceInstance | null; private startHealthChecks; private startRegistrationHeartbeat; private performHealthChecks; private checkServiceHealth; private registerService; private deregisterService; private queryServiceRegistry; } //# sourceMappingURL=service-discovery.d.ts.map