import * as k8s from '@kubernetes/client-node'; import { Logger } from 'winston'; import { EventEmitter } from 'events'; import { ConnectionPoolConfig, ConnectionEntry } from './ConnectionPool.js'; /** * Configuration for SingleClusterConnectionManager */ export interface ConnectionManagerConfig { /** * Connection pool configuration */ poolConfig?: ConnectionPoolConfig; /** * Logger instance */ logger?: Logger; } /** * Statistics for the managed cluster */ export interface ClusterStats { healthy: boolean; poolStats: { total: number; idle: number; inUse: number; unhealthy: number; waitQueueLength: number; }; } /** * Connection manager for handling a single Kubernetes cluster */ export declare class ConnectionManager extends EventEmitter { private readonly pool; private readonly logger?; private disposed; constructor(kubeConfigFactory: () => k8s.KubeConfig, config?: ConnectionManagerConfig); /** * Acquire a connection from the pool */ acquire(): Promise; /** * Release a connection back to the pool */ release(connection: ConnectionEntry): void; /** * Get statistics for the cluster */ getStats(): ClusterStats; /** * Check if the cluster is healthy */ private isClusterHealthy; /** * Dispose of the connection manager */ dispose(): Promise; } //# sourceMappingURL=ConnectionManager.d.ts.map