import type { ContextPackValidation, SprintValidation, Task, ValidationMap } from '../types'; export declare const VALIDATION_MAP_PATH = ".agents/kyro/validation.json"; export interface LoadedValidationMap { map: ValidationMap | null; issues: string[]; } /** Optional project-owned map. Absent → null without issues; invalid → null with issues (never throws). */ export declare function loadValidationMap(): LoadedValidationMap; export declare function validateValidationMap(value: unknown): string[]; /** * Resolves both tiers for a pack. Task tier: commands of every rule matching any task file (declared rule * order), then `fallback` when any file matched no rule (or there are no files), de-duplicated globally. * `uncoveredFiles` lists files without a rule — "no rule", never "validated". Scope packs get only close. */ export declare function resolveValidation(taskFiles: string[] | null, loaded?: LoadedValidationMap): ContextPackValidation; export interface SprintValidationInput { /** Active-sprint tasks (phases + emergent). */ tasks: Task[]; /** Files added by git reconciliation (`--sprint-file`). */ reconciled: string[]; } /** * Proportional close validation. Files come from task intent, recorded evidence (disposed tasks keep * their `files_changed`: partial changes may remain), and git reconciliation. Commands: rule commands, * fallback for uncovered files (or an empty set), `close`, then `integration` when an `escalate` * pattern matched. Evidence lines are returned as candidates only — they are free text, not commands. */ export declare function resolveSprintValidation(input: SprintValidationInput, loaded?: LoadedValidationMap): { sprint: SprintValidation; issues: string[]; }; /** * Integration (aggregate) commands or aggregate-suite phrases named in a task criterion. Commands a task * rule or the fallback also uses (e.g. `npm run build`) are focused and never count. Membership in * `close` does not suppress the warning: requiring the aggregate at close does not justify it per task. */ export declare function aggregateValidationMentions(criterion: string, map: ValidationMap | null): string[]; //# sourceMappingURL=validation.d.ts.map