/**
 * Severity of a SOLID violation.
 */
export type SolidSeverity = 'error' | 'warning' | 'info';
/**
 * Input for the solid_check tool.
 */
export interface SolidCheckInput {
    /** Absolute path to the project root to scan. */
    projectPath: string;
    /** Optional: list of glob patterns to exclude (default: ['node_modules/**', '.git/**', 'dist/**']). */
    exclude?: string[];
    /** Optional: fail on first error (default: false). */
    failFast?: boolean;
}
/**
 * A single SOLID principle violation.
 */
export interface SolidViolation {
    /** Rule identifier (e.g., 'srp-multiple-classes'). */
    rule: string;
    /** SOLID principle name (e.g., 'Single Responsibility Principle'). */
    principle: string;
    /** Human-readable description. */
    message: string;
    /** Absolute file path. */
    filePath: string;
    /** Line number (1-based), or 0 if N/A. */
    line: number;
    /** Severity. */
    severity: SolidSeverity;
    /** Suggested fix. */
    suggestion: string;
}
/**
 * Score breakdown per SOLID principle.
 */
export interface PrincipleScore {
    /** Principle name. */
    principle: string;
    /** Score 0-100. */
    score: number;
    /** Number of violations for this principle. */
    violationCount: number;
}
/**
 * Complete SOLID check report.
 */
export interface SolidCheckReport {
    [key: string]: unknown;
    /** Whether the project passes all rules (zero errors). */
    pass: boolean;
    /** Overall SOLID score 0-100. */
    score: number;
    /** Total files scanned. */
    filesScanned: number;
    /** Total violations found. */
    totalViolations: number;
    /** Error count. */
    errorCount: number;
    /** Warning count. */
    warningCount: number;
    /** Info count. */
    infoCount: number;
    /** All violations. */
    violations: SolidViolation[];
    /** Score per SOLID principle. */
    principleScores: PrincipleScore[];
}
/**
 * Result returned by the solid check engine.
 */
export interface SolidCheckResult {
    report: SolidCheckReport;
    /** Human-readable summary (≤200 tokens). */
    humanSummary: string;
}
//# sourceMappingURL=solid-check.d.ts.map