export type FixStrategyName = 'typescript' | 'lint' | 'tests' | 'coverage';
export type HealingFailureType = 'typecheck' | 'lint' | 'test' | 'coverage';
export interface HealingFailureContext {
    type: HealingFailureType;
    details: string;
}
export interface StrategyResult {
    fixed: boolean;
    reason: string;
    fixedIssues?: string[];
}
export interface FixAttempt {
    strategy: FixStrategyName;
    attempt: number;
    status: 'ok' | 'fail' | 'skipped';
    details: string;
}
export interface HealingResult {
    specId: string;
    initialFailure: string;
    attempts: FixAttempt[];
    finalStatus: 'healed' | 'still_failing' | 'partial';
    fixedIssues: string[];
    remainingIssues: string[];
}
export interface ParsedTs6133 {
    filePath: string;
    line: number;
    name: string;
}
export interface FailingTest {
    filePath: string;
    testName: string;
    error: string;
}
export interface UncoveredFile {
    absolutePath: string;
    relPath: string;
    stmtCount: number;
}
/** Shape of a single file entry in coverage/coverage-final.json (v8/istanbul). */
export interface CoverageFileSummary {
    /** Statement hit counts keyed by statement index. */
    s: Record<string, number>;
    /** Branch hit counts keyed by branch index. */
    b: Record<string, number[]>;
    /** Function hit counts keyed by function index. */
    f: Record<string, number>;
}
/** Top-level shape of coverage/coverage-final.json. */
export type CoverageFinalJson = Record<string, CoverageFileSummary>;
export interface AutoFixValidationInput {
    projectPath: string;
    specId: string;
    failureType: HealingFailureType;
    failureDetails: string;
}
export interface RunHealingLoopInput {
    projectPath: string;
    specId: string;
    failureType: HealingFailureType;
    failureDetails: string;
    maxAttempts?: number;
}
//# sourceMappingURL=self-healing.d.ts.map