/**
 * sinks/slack/index.ts
 *
 * Slack notification sink — posts formatted score change messages to
 * configured Slack channels via incoming webhooks.
 *
 * By default, only posts when regressions are detected (avoids notification
 * fatigue). Set `alwaysPost: true` to receive all reports.
 *
 * @see docs/design-docs/report-store/sink-architecture.md
 * @see docs/design-docs/report-store/notifications.md
 */
import type { Report, SinkHealthStatus, SinkResult } from "../../pipeline/types.js";
import type { ReportSink } from "../types.js";
export interface SlackSinkOptions {
    /** Post all reports, not just regressions (default: false — only regressions) */
    alwaysPost?: boolean;
}
export declare class SlackSink implements ReportSink {
    private readonly webhookUrl;
    private readonly channel?;
    private readonly options;
    readonly name = "slack";
    constructor(webhookUrl: string, channel?: string | undefined, options?: SlackSinkOptions);
    healthCheck(): Promise<SinkHealthStatus>;
    publish(report: Report): Promise<SinkResult>;
}
