import { Logger } from '../../utils/logger.js';
/**
 * AC Presence Validator
 *
 * Validates that spec.md contains inline Acceptance Criteria.
 *
 * **Critical Rule**: spec.md MUST contain ACs even when using `structure: user-stories`
 * with external living docs. This is required for AC sync hooks to function.
 *
 * **Validation Gates**:
 * 1. `sw:increment` (after spec generation) - BLOCKS if ACs missing
 * 2. `sw:do` (before starting work) - BLOCKS if ACs missing
 * 3. `sw:validate` (rule-based validation) - WARNS if ACs missing
 * 4. Pre-commit hook (git) - WARNS if ACs missing in new specs
 *
 * **See**: ADR-0062 (AC Embedding Architecture)
 */
export interface ACPresenceValidationResult {
    valid: boolean;
    acCount: number;
    expectedCount: number;
    errors: string[];
    warnings: string[];
    /**
     * Suggested fix for missing ACs
     */
    suggestedFix?: string;
}
/**
 * Validate AC presence in increment spec.md
 *
 * **Checks**:
 * 1. spec.md exists
 * 2. spec.md contains "## Acceptance Criteria" section
 * 3. AC count matches metadata.json (if metadata exists)
 * 4. All ACs follow proper format: `- [ ] **AC-US1-01**: Title`
 *
 * @param incrementPath - Path to increment directory
 * @param options - Validation options
 * @returns Validation result
 */
export declare function validateACPresence(incrementPath: string, options?: {
    logger?: Logger;
    strict?: boolean;
}): ACPresenceValidationResult;
/**
 * Format validation result as human-readable message
 */
export declare function formatValidationResult(result: ACPresenceValidationResult): string;
/**
 * Validate AC presence and throw if validation fails
 *
 * Use this in critical paths (e.g., before starting increment)
 */
export declare function validateACPresenceStrict(incrementPath: string, logger?: Logger): void;
//# sourceMappingURL=ac-presence-validator.d.ts.map