/**
 * Per-event Block Kit template assemblers. Each composes the shared section
 * builders into a SlackMessage. Report templates are chosen by a severity
 * cascade and wrapped in a single colored attachment (the urgency bar). Pure;
 * no I/O, no env.
 */
import type { DigestSummary, Report } from "../../types/index.js";
import type { NotificationDelivery } from "../../types/team.js";
import type { AskJobOutcome, FailureAlertInput } from "../gateway-events.js";
import type { SlackBlock, SlackBuildOptions, SlackMessage } from "./types.js";
declare const COLOR: {
    readonly completed: "#2eb67d";
    readonly regressed: "#e01e5a";
    readonly breached: "#e01e5a";
    readonly errored: "#ecb22e";
    readonly degraded: "#ecb22e";
};
export type ReportTemplate = keyof typeof COLOR;
/**
 * Pick the primary template by severity:
 * degraded > breached > errored > regressed > completed.
 */
export declare function selectReportTemplate(report: Report): ReportTemplate;
export declare function regressedBody(report: Report, options: SlackBuildOptions): SlackBlock[];
export declare function reportMessage(report: Report, options: SlackBuildOptions): SlackMessage;
export declare function digestMessage(digest: DigestSummary, cadence: NotificationDelivery, options: SlackBuildOptions): SlackMessage;
export declare function adminAlertMessage(alert: FailureAlertInput, options: SlackBuildOptions): SlackMessage;
export declare function askAnswerMessage(outcome: AskJobOutcome, options: SlackBuildOptions): SlackMessage;
export {};
