/** * Connection Pool Adapter for SolidWorks MCP Server * * Manages multiple SolidWorks adapter connections for: * - Improved performance through parallel operations * - Load balancing across connections * - Connection reuse and lifecycle management */ import type { SolidWorksFeature, SolidWorksModel } from '../solidworks/types.js'; import type { AdapterHealth, AdapterResult, Command, ExtrusionParameters, ISolidWorksAdapter, LoftParameters, MassProperties, RevolveParameters, SweepParameters } from './types.js'; export declare class ConnectionPoolAdapter implements ISolidWorksAdapter { private adapterFactory; private poolSize; private maxWaitTime; private connections; private waitingQueue; private initialized; constructor(adapterFactory: () => Promise, poolSize?: number, maxWaitTime?: number); /** * Initialize the connection pool */ initialize(): Promise; /** * Create a new connection */ private createConnection; /** * Acquire a connection from the pool */ private acquireConnection; /** * Release a connection back to the pool */ private releaseConnection; /** * Execute operation with a pooled connection */ private executeWithPool; /** * Get pool statistics */ getStatistics(): { totalConnections: number; availableConnections: number; inUseConnections: number; waitingRequests: number; connectionStats: Array<{ id: string; inUse: boolean; useCount: number; lastUsed: Date; }>; }; /** * Destroy the connection pool */ destroy(): Promise; connect(): Promise; disconnect(): Promise; isConnected(): boolean; healthCheck(): Promise; execute(command: Command): Promise>; executeRaw(method: string, args: any[]): Promise; openModel(filePath: string): Promise; closeModel(save?: boolean): Promise; createPart(): Promise; createAssembly(): Promise; createDrawing(): Promise; createExtrusion(params: ExtrusionParameters): Promise; createRevolve(params: RevolveParameters): Promise; createSweep(params: SweepParameters): Promise; createLoft(params: LoftParameters): Promise; createSketch(plane: string): Promise; addLine(x1: number, y1: number, x2: number, y2: number): Promise; addCircle(centerX: number, centerY: number, radius: number): Promise; addRectangle(x1: number, y1: number, x2: number, y2: number): Promise; exitSketch(): Promise; getMassProperties(): Promise; exportFile(filePath: string, format: string): Promise; getDimension(name: string): Promise; setDimension(name: string, value: number): Promise; } //# sourceMappingURL=connection-pool.d.ts.map