import type { FileSystem } from "../ports/filesystem.js"; import type { GitClient } from "../ports/git.js"; export type SludgeSignalKind = "phantom_shape" | "cast_density" | "homeless_constructor" | "free_function_data_behavior" | "god_file"; export type SludgeSeverity = "low" | "medium" | "high"; export interface SludgeSignal { readonly kind: SludgeSignalKind; readonly severity: SludgeSeverity; readonly message: string; readonly line?: number; readonly symbol?: string; readonly evidence: string; } export interface SludgeMetrics { readonly typedefCount: number; readonly typeCastCount: number; readonly classCount: number; readonly functionCount: number; readonly symbolCount: number; readonly homelessConstructorCount: number; readonly freeFunctionDataBehaviorCount: number; } export interface SludgeFileReport { readonly path: string; readonly score: number; readonly metrics: SludgeMetrics; readonly signals: readonly SludgeSignal[]; } export interface SludgeReport { readonly scannedFiles: number; readonly filesWithSignals: number; readonly totalSignals: number; readonly score: number; readonly files: readonly SludgeFileReport[]; readonly summary: string; } export interface DetectSludgeOptions { readonly cwd: string; readonly fs: FileSystem; readonly git: GitClient; readonly resolvePath: (filePath: string) => string; readonly path?: string; } export declare function analyzeSludgeFile(filePath: string, source: string): SludgeFileReport | null; export declare function detectSludge(options: DetectSludgeOptions): Promise; //# sourceMappingURL=sludge-detector.d.ts.map