/**
 * Send deploy / SSL / health-check / backup notifications to the configured
 * channels (Slack, Discord, Telegram, email, generic webhook), mirroring
 * Forge's notification system.
 *
 * Two surfaces:
 *  - {@link sendNotifications} — called from the TS deploy orchestrator for
 *    deploy success/failure (and other events ts-cloud drives locally).
 *  - {@link buildNotifierScript} — generates an on-box `ts-cloud-notify`
 *    helper that cron-driven events (certbot renewal, backups) can call.
 */
import type { NotificationsConfig, NotifyEvent } from '@ts-cloud/core';
/** Fetch implementation (injectable for tests). */
export type FetchLike = (input: string, init?: {
    method?: string;
    headers?: Record<string, string>;
    body?: string;
}) => Promise<{
    ok: boolean;
    status: number;
}>;
export interface SendNotificationsOptions {
    /** Override the fetch implementation (default: global `fetch`). */
    fetchImpl?: FetchLike;
}
/**
 * Send `message` for `event` to every configured + subscribed channel. Errors
 * on individual channels are swallowed (a flaky webhook must not fail a deploy);
 * returns the list of channels that were attempted.
 */
export declare function sendNotifications(config: NotificationsConfig | undefined, event: NotifyEvent, message: string, options?: SendNotificationsOptions): Promise<string[]>;
/** Resolve the effective notifications config for a site (site overrides project). */
export declare function resolveNotifications(project: NotificationsConfig | undefined, site: NotificationsConfig | undefined): NotificationsConfig | undefined;
/**
 * Generate an on-box `ts-cloud-notify` script that POSTs `$1` (a message) to
 * the webhook channels. Used by cron-driven hooks (certbot renew, backups) so
 * server-side events also reach Slack/Discord/etc. Returns `[]` when no
 * webhook-style channel is configured.
 */
export declare function buildNotifierScript(config: NotificationsConfig | undefined): string[];
