/** * Feature Complexity Analyzer * * Intelligently analyzes SolidWorks operations to determine the best execution method: * - Direct COM for simple operations (≤12 parameters) * - VBA Macro fallback for complex operations (13+ parameters) * * This solves the fundamental limitation of Node.js COM bridges (winax, edge-js) * which fail when calling methods with more than 12-13 parameters. */ import type { ExtrusionParameters } from './types.js'; /** * Feature method complexity information */ export interface FeatureComplexity { method: string; parameterCount: number; requiresMacro: boolean; criticalParameters: string[]; alternativeMethod?: string; } /** * Execution strategy recommendation */ export interface ExecutionStrategy { method: string; strategy: 'direct-com' | 'vba-macro' | 'hybrid'; confidence: number; reason: string; estimatedSuccessRate: number; } /** * SolidWorks API method parameter counts * Based on SolidWorks API documentation (versions 2021-2025) */ export declare class FeatureComplexityAnalyzer { private static readonly COM_PARAMETER_LIMIT; private static readonly HYBRID_THRESHOLD; /** * Feature complexity database * Maps SolidWorks API methods to their characteristics */ private static readonly FEATURE_COMPLEXITIES; /** * Analyze parameter complexity of an operation */ static analyzeParameters(params: Record): { count: number; complexity: 'simple' | 'moderate' | 'complex'; hasOptionals: boolean; }; /** * Determine execution strategy for a feature operation */ static determineStrategy(methodName: string, parameters: Record): ExecutionStrategy; /** * Check if a method requires VBA macro fallback */ static requiresMacro(methodName: string): boolean; /** * Get parameter count for a method */ static getParameterCount(methodName: string): number; /** * Get critical parameters that must be set correctly */ static getCriticalParameters(methodName: string): string[]; /** * Analyze extrusion parameters specifically */ static analyzeExtrusion(params: ExtrusionParameters): ExecutionStrategy; /** * Get all methods that require macro fallback */ static getComplexMethods(): string[]; /** * Get statistics about feature complexity */ static getComplexityStats(): { total: number; requireMacro: number; directCOM: number; percentage: number; }; /** * Log complexity analysis for debugging */ static logAnalysis(methodName: string, params: Record): void; } /** * Helper function to determine if direct COM should be attempted */ export declare function shouldAttemptDirectCOM(methodName: string, params: Record): boolean; /** * Helper function to determine if macro fallback should be used */ export declare function shouldUseMacroFallback(methodName: string, params: Record): boolean; /** * Helper function to get recommended approach */ export declare function getRecommendedApproach(methodName: string, params: Record): string; //# sourceMappingURL=feature-complexity-analyzer.d.ts.map