import type { GitProfile } from './types.js'; /** Extract shipped sprint IDs referenced in commit subjects. * Matches `S\d+` not followed by another digit or a dot — so `S75.5` does * NOT count as a reference to S75, and `S70+S71` correctly yields {70, 71}. * Ticket zero (`S101-0`) is reserved for sprint scoping/planning commits and * does not mean implementation for that sprint has shipped. Sprint ranges * (`S64-S80`, `S85–S90`) are roadmap references, not shipped commits. * Pure function — separated from git I/O for testability. */ export declare function extractSprintReferences(commitSubjects: string[]): Set; /** Extract sprint IDs from shipped sprint artifact paths in git log output. * This catches normal GitHub squash merges whose subject is PR-oriented * (`Fix thing (#123)`) while the commit itself adds `docs/retros/sprint-N.json` * or an inserted sprint artifact such as `docs/retros/sprint-143.5.json`. */ export declare function extractSprintArtifactReferences(logLines: string[]): Set; /** Detect sprint IDs with shipped commits on the given ref (default: main). * Falls back to `master` then `HEAD` if main is unavailable. Returns an empty * set on any git failure so callers can run validation without a working repo. * Refs are validated against SAFE_REF_RE before being interpolated into the * shell command — refs containing whitespace, semicolons, backticks, etc. * short-circuit to an empty set rather than risk a shell injection. */ export declare function findShippedSprintsOnMain(cwd: string, ref?: string): Set; export declare function analyzeGit(cwd: string): Promise; //# sourceMappingURL=git.d.ts.map