/**
 * AC Coverage Validator
 *
 * Validates Acceptance Criteria coverage by tasks:
 * - Detects uncovered ACs (ACs with no implementing tasks)
 * - Detects orphan tasks (tasks with no AC linkage)
 * - Builds traceability matrix (AC ↔ Task mapping)
 * - Calculates coverage metrics
 *
 * Used by `sw:validate` and `sw:done` commands to ensure
 * all acceptance criteria are covered before increment closure.
 */
/**
 * AC Coverage Report
 */
export interface ACCoverageReport {
    /** Total number of Acceptance Criteria in spec.md */
    totalACs: number;
    /** Number of ACs covered by at least one task */
    coveredACs: number;
    /** AC-IDs with no implementing tasks */
    uncoveredACs: string[];
    /** Task IDs with no satisfiesACs field or invalid AC-IDs */
    orphanTasks: string[];
    /** Coverage percentage (0-100) */
    coveragePercentage: number;
    /** Traceability matrix: AC-ID → Task IDs */
    acToTasksMap: Map<string, string[]>;
    /** Reverse mapping: Task ID → AC-IDs */
    taskToACsMap: Map<string, string[]>;
    /** Per-User Story coverage breakdown */
    coverageByUS: Map<string, USCoverageStats>;
    /** Validation timestamp */
    timestamp: string;
}
/**
 * Coverage statistics per User Story
 */
export interface USCoverageStats {
    /** User Story ID */
    usId: string;
    /** User Story title */
    title: string;
    /** Total ACs for this US */
    totalACs: number;
    /** Covered ACs for this US */
    coveredACs: number;
    /** Coverage percentage for this US */
    coveragePercentage: number;
    /** Uncovered AC-IDs for this US */
    uncoveredACs: string[];
}
/**
 * Validation options
 */
export interface ValidationOptions {
    /** Allow orphan tasks (default: false) */
    allowOrphans?: boolean;
    /** Minimum coverage percentage required (default: 100) */
    minCoveragePercentage?: number;
    /** Logger for output messages */
    logger?: {
        log: (msg: string) => void;
        error: (msg: string, err?: Error) => void;
        warn: (msg: string) => void;
    };
}
/**
 * Validate AC coverage for an increment
 *
 * @param incrementPath - Path to increment directory (e.g., .specweave/increments/0047-us-task-linkage)
 * @param options - Validation options
 * @returns AC Coverage Report
 * @throws Error if spec.md or tasks.md cannot be read
 */
export declare function validateACCoverage(incrementPath: string, options?: ValidationOptions): ACCoverageReport;
/**
 * Check if coverage report passes validation
 *
 * @param report - Coverage report
 * @param options - Validation options
 * @returns True if validation passes, false otherwise
 */
export declare function isCoveragePassing(report: ACCoverageReport, options?: ValidationOptions): boolean;
/**
 * Print detailed coverage report to console
 *
 * @param report - Coverage report
 * @param options - Validation options
 */
export declare function printCoverageReport(report: ACCoverageReport, options?: ValidationOptions): void;
/**
 * Export coverage report to JSON file
 *
 * @param report - Coverage report
 * @param outputPath - Path to output JSON file
 */
export declare function exportCoverageReportJSON(report: ACCoverageReport, outputPath: string): Promise<void>;
/**
 * Get recommended actions based on coverage report
 */
export declare function getRecommendedActions(report: ACCoverageReport): string[];
//# sourceMappingURL=ac-coverage-validator.d.ts.map