import { type AppGraph } from "./app-graph.js"; export type AppQualitySeverity = "critical" | "high" | "medium" | "low"; export type AppQualityCategory = "visual-system" | "typography" | "spacing" | "color" | "components" | "accessibility" | "responsive" | "maintainability"; export interface AppQualityIssue { id: string; category: AppQualityCategory; severity: AppQualitySeverity; title: string; detail: string; evidence: string[]; recommendation: string; evidenceLocations?: Array<{ file: string; line?: number; excerpt?: string; }>; affectedFiles?: string[]; confidence?: number; estimatedEffort?: "small" | "medium" | "large"; fixCategory?: "tokens" | "components" | "accessibility" | "responsive" | "code-health"; } export interface AppQualityDirection { id: string; name: string; fit: string; tokenMoves: string[]; componentMoves: string[]; patchScope: string[]; } export interface AppQualityFileSignal { path: string; kind: "component" | "route" | "style" | "config" | "markup"; classCount: number; shadcnImports: string[]; hexColors: string[]; cssVariables: string[]; } export interface AppQualityDiagnosis { version: 1; target: string; generatedAt: string; summary: { score: number; verdict: string; scannedFiles: number; routes: number; components: number; styleFiles: number; tailwindClasses: number; shadcnImports: number; cssVariables: number; hexColors: number; scannedBytes?: number; scanMs?: number; analysisMs?: number; }; scores: Record; files: AppQualityFileSignal[]; issues: AppQualityIssue[]; directions: AppQualityDirection[]; nextActions: string[]; appGraph?: { routes: number; components: number; imports: number; shadcnComponents: string[]; package: AppGraph["package"]; graphMs?: number; }; } interface ScanOptions { target?: string; projectRoot: string; maxFiles?: number; write?: boolean; } export declare function diagnoseAppQuality(options: ScanOptions): Promise; export declare function hasDiagnosis(projectRoot: string): Promise; export {};