/**
 * Shared building blocks for the agent-setup check families. Holds the provenance-record factories
 * every agent check uses to stamp its evidence (so source type and verification date stay consistent
 * across checks), a path-dedupe helper, and the instruction-file precondition guard. Splitting these
 * out keeps the per-check files focused on their own assertions rather than re-declaring boilerplate.
 */
import type { AuditContext, AuditFailure } from "./types.js";
import type { CheckEvidence } from "./provenance-types.js";
/**
 * Build a `spec`-typed provenance record for an agent check - evidence whose authority is a written
 * specification rather than a past incident. Source type, empty URL list, the shared verification
 * date, and `MUST` normative level are fixed; only the evidence paths vary per check.
 *
 * @param paths - repo-relative files that back the check (the spec docs or instruction files it reads)
 * @returns a spec-sourced evidence record carrying those paths and the module's shared `verified_on` date
 */
export declare function specProvenance(paths: string[]): CheckEvidence;
/**
 * Build an `incident`-typed provenance record for an agent check - evidence whose authority is a past
 * failure captured in a footgun or lesson rather than a spec. Identical shape to `specProvenance`
 * apart from the source type; the citation lives in `evidence_paths`, hence the empty URL list.
 *
 * @param paths - repo-relative files that back the check, typically the footgun/lesson recording the incident
 * @returns an incident-sourced evidence record carrying those paths and the module's shared `verified_on` date
 */
export declare function incidentProvenance(paths: string[]): CheckEvidence;
/**
 * Deduplicate provenance paths while preserving first-seen order for stable audit output. Order is
 * preserved deliberately so combined evidence lists stay deterministic across runs.
 *
 * @param paths - evidence paths to dedupe, possibly with repeats from merging several checks' lists
 * @returns the same paths with later duplicates removed, first occurrence kept in original order
 */
export declare function uniquePaths(paths: string[]): string[];
export declare function checkSelectedInstructionAvailable(ctx: AuditContext, check: string): AuditFailure | null;
//# sourceMappingURL=check-agent-common.d.ts.map