import { e as StickySession } from '../StickySession-DRiV_wtq.js'; export { C as CookieSigner, M as MeshProxyResult, a as MeshRouteMatch, b as MeshRouterRequestContext, c as MeshRouterServer, d as MeshTargetNode, R as RouteMatcher, S as StickyCookiePayload } from '../StickySession-DRiV_wtq.js'; import { P as NormalizedMeshConfig, q as MeshInstanceRecord, D as MeshServiceStrategy } from '../types-C9VYURdP.js'; import { IncomingHttpHeaders } from 'node:http'; import '../ActiveConnectionTracker-BfuXgjrO.js'; import 'node:net'; declare class InstanceRegistry { private readonly config; private readonly registry; private readonly healthCache; constructor(config: NormalizedMeshConfig); listRoutable(): Promise; listHealthyByService(service: string): Promise; private checkHttpHealth; } interface LoadBalancerSelection { readonly instance: MeshInstanceRecord; readonly setCookie?: string; } declare class LoadBalancer { private readonly sticky; private readonly cursors; private readonly active; constructor(sticky: StickySession); select(service: string, strategy: MeshServiceStrategy, instances: readonly MeshInstanceRecord[], headers: IncomingHttpHeaders): LoadBalancerSelection | null; begin(instanceId: string): void; end(instanceId: string): void; private roundRobin; private leastConnections; } export { InstanceRegistry, LoadBalancer, StickySession };