/**
 * sinks/slack/format.ts
 *
 * Formats evaluation report data into Slack Block Kit structures for the
 * SlackSink. Provides three message formats:
 *
 * - `formatRegressionAlert` — detailed regression notification with
 *   per-area dimension breakdowns
 * - `formatScoreSummary` — compact score overview for general reporting
 * - `formatWeeklyDigest` — weekly trend summary for scheduled digests
 *
 * @see docs/design-docs/report-store/sink-architecture.md
 */
import type { Report } from "../../pipeline/types.js";
import type { DigestSummary } from "../../schedules/digest.js";
export interface SlackMessage {
    blocks: SlackBlock[];
    text: string;
}
interface SlackBlock {
    elements?: {
        text: string;
        type: "mrkdwn" | "plain_text";
    }[];
    fields?: {
        text: string;
        type: "mrkdwn" | "plain_text";
    }[];
    text?: {
        text: string;
        type: "mrkdwn" | "plain_text";
    };
    type: "context" | "divider" | "header" | "section";
}
/**
 * Format a regression alert for areas that have regressed.
 *
 * Produces a rich Slack message with:
 * - Header with overall score change
 * - Context metadata (mode, source, timestamp, promptfoo link)
 * - Per-area regression details with dimension breakdowns
 * - Brief mentions of improved and unchanged areas
 */
export declare function formatRegressionAlert(report: Report): SlackMessage;
/**
 * Format a general score summary for Slack reporting.
 *
 * Produces a compact overview with:
 * - Overall score with grade emoji
 * - Per-area score table
 * - Cost summary (if available)
 * - Promptfoo link (if available)
 */
export declare function formatScoreSummary(report: Report): SlackMessage;
/**
 * Format a weekly digest summary for Slack.
 *
 * Produces a summary message covering score trends over a time window:
 * - Header with overall trend direction and score
 * - Per-area trend table with arrows
 * - Lists of improved, regressed, and stable areas
 * - Report count and time window metadata
 */
export declare function formatWeeklyDigest(digest: DigestSummary): SlackMessage;
export {};
