/** * Assemble copy-ready {@link SupportTemplate}s from a verification run: map its * checks to {@link SupportFinding}s (one per code), then render each into a * subject + body + a terminal copy label, picking the register from the finding's * `kind`. Pure and deterministic — the only seam is {@link SupportContext}, which * the caller fills (and redacts) at integration time. */ import type { Check, CheckCode } from "../internals/verify.js"; import { type Audience, type Severity, type SupportFinding, type TemplateKind } from "./findings.js"; import { type SupportContext } from "./templates.js"; export interface SupportTemplate { /** Stable id `${kind}:${code}` — one template per code per run. */ id: string; code: CheckCode; kind: TemplateKind; audience: Audience; severity: Severity; subject: string; body: string; /** Short label for the terminal "[copy] …" affordance. */ copyLabel: string; } /** Render a single finding into a template. */ export declare function renderTemplate(finding: SupportFinding, ctx: SupportContext): SupportTemplate; /** * The full pipeline for a capability's verification: checks → findings (deduped, * most-urgent-first) → rendered templates, preserving that order. */ export declare function supportTemplates(checks: readonly Check[], capability: string, ctx: SupportContext): SupportTemplate[];