import type { AlertsOptions, ResolvedAlerts } from './alert-rule.js';
/**
 * Validate + normalize `alerts`. Returns `null` when unconfigured (feature off).
 *
 * Fails CLOSED at boot:
 *  - a configured `alerts` with NO destination — neither `channels` nor the
 *    legacy `webhookUrl` — throws (silently dropping every alert is worse than
 *    refusing to boot);
 *  - empty `rules` throws;
 *  - an unparseable `every`/`cooldown`/rule-`window` duration throws (a typo
 *    surfaces at boot rather than silently never firing).
 *
 * The legacy `webhookUrl` is folded into the channel list as a
 * {@link webhookChannel}, APPENDED after any explicit `channels`, so the v1
 * raw-JSON behavior is preserved exactly while new configs use `channels`.
 */
export declare function resolveAlerts(alerts: AlertsOptions | undefined): ResolvedAlerts | null;
//# sourceMappingURL=resolve-alerts.d.ts.map