import * as ts from 'typescript/lib/tsserverlibrary'; import { IClassNameExtractor } from '../core/interfaces'; import { ClassNameInfo } from '../core/types'; /** * OPTIMIZED: Service responsible for orchestrating class name extraction * * Performance improvements: * 1. Fast path for JSX elements (skip non-JSX nodes early) * 2. Fast path for tv() calls (check only call expressions) * 3. Fast path for cva() calls (check only call expressions) * 4. Single extractor instance (avoid canHandle() overhead) * 5. Direct node type checking (faster than polymorphic calls) * 6. Reduced function call overhead * 7. Conditional extractor execution (skip disabled extractors) */ export declare class ClassNameExtractionService { private readonly enableTailwindVariants; private readonly enableClassVarianceAuthority; private jsxExtractor; private tvExtractor; private cvaExtractor; constructor(enableTailwindVariants?: boolean, enableClassVarianceAuthority?: boolean); /** * Extract all class names from a source file (OPTIMIZED) */ extractFromSourceFile(typescript: typeof ts, sourceFile: ts.SourceFile, utilityFunctions: string[], typeChecker?: ts.TypeChecker): ClassNameInfo[]; /** * Add a custom extractor (for extensibility) * Note: This is kept for API compatibility but not used in optimized path */ addExtractor(_extractor: IClassNameExtractor): void; /** * Clear caches (useful when files change) */ clearCaches(): void; } //# sourceMappingURL=ClassNameExtractionService.d.ts.map