import type { MakeStylesExtraction, TransformResult, TailwindConversion, StyleImport } from './types.js'; export declare class CodeTransformer { private sourceCode; private ast; constructor(sourceCode: string); private parseSourceCode; /** * Transform the code by replacing makeStyles with Tailwind classes */ transform(extractions: MakeStylesExtraction[], conversions: Map): TransformResult; /** * Transform the code with support for imported styles */ transformWithImports(extractions: MakeStylesExtraction[], conversions: Map, importedStyles: StyleImport[]): TransformResult; /** * Determine which extractions can be fully migrated (all styles have successful conversions) */ private getFullyMigratableExtractions; /** * FIXED: Validates that all classes.xxx usages in the AST can be successfully converted * This prevents broken references when makeStyles is removed * * The previous version only checked MemberExpression but missed: * - OptionalMemberExpression (classes?.xxx) * - Computed properties in objects ([classes.xxx]: condition) * - Nested expressions in function calls, templates, etc. */ private validateAllClassUsagesConvertible; /** * Helper method to check if a specific style is convertible * CROSS-FILE FIX: Search across all possible hookNames for imported styles */ private checkStyleConvertible; /** * Find the actual variable name used for classes (e.g., "classes" from "const classes = useStyles()") */ private findClassesVariableName; private getPartiallyMigratableExtractions; private replaceMixedClassNameUsages; private transformClassNameExpression; /** * Update only makeStyles calls for external files, returning transformed code */ updatePartialMakeStylesCallsAndGetCode(extractions: MakeStylesExtraction[], conversions: Map): TransformResult; /** * Update makeStyles calls for partially migratable extractions * Remove converted properties, keep unconvertible ones */ private updatePartialMakeStylesCalls; /** * Update a styles object expression to remove converted properties */ private updateStylesObjectExpression; /** * Remove converted CSS properties from a style object */ private removeConvertedProperties; private transformTemplateLiteral; private transformCallExpression; private transformClassNameExpressionInCnContext; private transformBinaryExpression; private transformObjectExpression; private removeMakeStylesCalls; private updateImports; private addClsxImportIfNeeded; /** * Build a map of hook names to their actual variable names by analyzing the AST */ private buildHookToVariableMap; /** * Remove imported style hook usages that have been successfully migrated */ private removeImportedStyleUsages; private getClassesVariableName; /** * Generate a preview of the transformation without modifying the AST */ generatePreview(extractions: MakeStylesExtraction[], conversions: Map): string; /** * Count remaining classes.x usages in the migrated code */ private countRemainingClassesUsages; } //# sourceMappingURL=transformer.d.ts.map