import type { ServerConfig, ServerInstance } from '../../../shared/models/server.model.js'; /** * Error thrown when tag-match-unique instance selection fails. * Passes raw data so the error class itself can format the message. */ export declare class TagMatchUniqueError extends Error { readonly instanceCount: number; readonly requestTags?: Record | undefined; readonly availableInstances?: Record> | undefined; constructor(instanceCount: number, requestTags?: Record | undefined, availableInstances?: Record> | undefined); } /** * Instance selector for multi-instance servers * Implements three selection strategies: random, round-robin, and tag-match-unique */ export declare class InstanceSelector { private static roundRobinCounters; /** * Select best instance based on configured strategy * * @param serverName - Name of the server * @param serverConfig - Server configuration * @param requestOptions - Optional request options for instance selection * @param statusChecker - Optional function to check instance connection status (for testing) */ static selectInstance(serverName: string, serverConfig: ServerConfig, requestOptions?: { sessionId?: string; tags?: Record; }, statusChecker?: (serverName: string, index: number) => { connected?: boolean; } | undefined): ServerInstance | undefined; private static selectRandomInstance; private static selectRoundRobinInstance; private static selectTagMatchUniqueInstance; } //# sourceMappingURL=instance-selector.d.ts.map