import type { ObservabilityLevel, ObservabilitySink } from './types.js'; export type WebhookFormat = 'feishu' | 'dingtalk' | 'slack' | 'generic'; export interface WebhookAlertOptions { /** 告警接收地址 */ webhookUrl: string; /** 最低触发级别(默认 error) */ minLevel?: ObservabilityLevel; /** 仅错误 trace 触发(默认 true)。false 时 warn 级别事件也触发 */ onErrorOnly?: boolean; /** 额外自定义请求头 */ headers?: Record; /** 请求超时(毫秒,默认 3000) */ timeoutMs?: number; /** webhook 载荷格式(默认 feishu)。不同 IM 的请求体结构不同: * feishu -> { msg_type:'text', content:{ text } } * dingtalk -> { msgtype:'text', text:{ content } } * slack -> { text } * generic -> { text, ...payload }(透传结构化字段,适配自研网关) */ format?: WebhookFormat; } export interface AlertPayload { traceId: string; name?: string; status?: string; level?: ObservabilityLevel; error?: string; errorType?: string; environment?: string; tags?: string[]; cost?: number; timestamp: number; } /** * Webhook 告警器:在后台异步 POST 告警,吞掉一切异常。 */ export declare class WebhookAlerter { private readonly url; private readonly minLevel; private readonly onErrorOnly; private readonly headers; private readonly timeoutMs; private readonly format; constructor(opts: WebhookAlertOptions); /** 触发告警(fire-and-forget,永不抛错) */ alert(payload: AlertPayload): void; private levelRank; /** 是否达到触发级别 */ shouldAlert(level: ObservabilityLevel): boolean; private renderText; } /** * 装饰器 Sink:在真实 Sink 之上叠加告警能力。 * 仅 endTrace(错误状态)与 recordEvent(warn/error 级别)触发告警。 */ export declare function createAlertingSink(sink: ObservabilitySink, alerter: WebhookAlerter): ObservabilitySink; //# sourceMappingURL=alerting.d.ts.map