/** * Unresolved variable reporting and file generation * Generates human-readable and machine-readable reports for unresolved var() references */ import type { UnresolvedCause, UnresolvedVariable } from '../analysis/unresolved'; /** * Metadata for unresolved variable report generation */ export interface UnresolvedReportMetadata { /** Timestamp when report was generated */ generatedAt: string; /** Source CSS file path */ source: string; /** Package version */ version?: string; } /** * Summary statistics for unresolved variables */ interface UnresolvedSummary { /** Total number of unresolved variables */ total: number; /** Number of external references (plugins, runtime injection, etc.) */ external: number; /** Number of self-referential (intentionally skipped) */ selfReferential: number; /** Number of unknown causes */ unknown: number; } /** * JSON structure for unresolved variable report */ export interface UnresolvedReportJSON { generatedAt: string; source: string; version?: string; summary: UnresolvedSummary; unresolved: Array<{ variableName: string; originalValue: string; referencedVariable: string; fallbackValue?: string; source: 'theme' | 'root' | 'variant'; variantName?: string; selector?: string; likelyCause: UnresolvedCause; }>; } /** * Runtime type guard for unresolved report JSON structure * * @param data - The data to validate * @returns True if the data matches UnresolvedReportJSON structure */ export declare function isUnresolvedReportJSON(data: unknown): data is UnresolvedReportJSON; /** * Generates Markdown report from unresolved variables * * @param unresolved - Array of unresolved variables * @param metadata - Report metadata * @returns Markdown content */ export declare function generateMarkdownReport(unresolved: Array, metadata: UnresolvedReportMetadata): string; /** * Generates JSON report from unresolved variables * * @param unresolved - Array of unresolved variables * @param metadata - Report metadata * @returns JSON content */ export declare function generateJSONReport(unresolved: Array, metadata: UnresolvedReportMetadata): string; /** * Writes unresolved variable reports to files * * @param outputDir - Directory to write reports to * @param unresolved - Array of unresolved variables * @param metadata - Report metadata * @returns Promise resolving to written file paths */ export declare function writeUnresolvedReports(outputDir: string, unresolved: Array, metadata: UnresolvedReportMetadata): Promise<{ markdown: string; json: string; }>; export {};