import { Nullable, ParserResultInterface, ClassifyReport, AnalysisReport } from '@pandacss/types'; import { ParserOptions } from '@pandacss/core'; import { Generator } from '@pandacss/generator'; interface RecipeReportEntry { recipeName: string; usedInXFiles: number; usedCount: number; variantCount: number; usedCombinations: number; percentUsed: number; jsxPercentUsed: number; fnPercentUsed: number; possibleCombinations: string[]; unusedCombinations: number; mostUsedCombinations: string[]; } interface TokenUsageItem { category: string; value: string; filePath: string; type: 'token' | 'nonToken'; loc: Nullable<{ line: number; column: number; }>; } interface TokenReportEntry { category: string; usedInXFiles: number; usedCount: number; count: number; percentUsed: number; hardcoded: number; mostUsedNames: string[]; } interface TokenAnalysisReport { usageMap: Map; percentMap: Map; tokenNameMap: Map; fileUsageMap: Map>; hardcodedTokenMap: Map; totalMap: Map; getSummary(): TokenReportEntry[]; } type ReportFormat = 'json' | 'markdown' | 'csv' | 'text' | 'table'; declare function formatTokenReport(result: TokenReportEntry[], format: ReportFormat): string; declare function formatRecipeReport(result: RecipeReportEntry[], format: ReportFormat): string; declare class Reporter { #private; private ctx; private options; constructor(ctx: Generator, options: ReporterOptions); private setup; get report(): AnalysisReport; private parseFiles; private parseFile; init: () => void; getTokenReport: () => TokenAnalysisReport; getRecipeReport: () => RecipeReportEntry[]; } interface ReporterOptions { onResult?: (file: string, result: ParserResultInterface) => void; project: { parserOptions: ParserOptions; parseSourceFile: (file: string) => ParserResultInterface | undefined; classify: (fileMap: Map) => ClassifyReport; }; getFiles: () => string[]; getRelativePath: (cwd: string, file: string) => string; } export { type RecipeReportEntry, type ReportFormat, Reporter, type ReporterOptions, type TokenAnalysisReport, type TokenReportEntry, formatRecipeReport, formatTokenReport };