import type { BacklogTicket, LoopConfig } from './types.js'; import type { Logger } from './logger.js'; export interface GuardResult { passed: boolean; failedGuard?: 'typecheck' | 'tests' | 'substantiveness' | 'diff_scope'; } export interface DiffScopeResult { inScope: boolean; outOfScopeFiles: string[]; } /** * Check if the diff since preSha is within the ticket's module scope. * A file is in scope if it matches a module path, is under a module directory, * or is a test file for an in-scope module. */ export declare function isDiffInScope(preSha: string, modules: string[], cwd: string): DiffScopeResult; /** * Run post-ticket guards: typecheck + tests. * If either fails, auto-revert to preSha. * * @returns Guard result with pass/fail status */ export declare function runGuards(preSha: string, config: LoopConfig, cwd: string, log: Logger, ticket?: BacklogTicket): GuardResult; /** * Check if changes since preSha are substantive (not just comments/whitespace). * Uses `git diff --stat` to count insertions/deletions, then checks * if the non-comment/non-whitespace diff is meaningful. */ export declare function isSubstantive(preSha: string, cwd: string): boolean; //# sourceMappingURL=guard-runner.d.ts.map