/**
 * Webhook source evaluator.
 *
 * Webhooks are push-based (an inbound signed HTTP delivery), so the poll-model
 * `evaluate` returns null. When a delivery arrives, the receiver matches it
 * against monitors with `matchWebhook`, which reuses the github/linear matchers
 * from lib/triggers/webhook.ts by projecting the monitor's webhook filters onto a
 * synthesized JobConfig-shaped trigger.
 */
import { type IncomingWebhook } from '../../triggers/webhook.js';
import type { JobTrigger } from '../../scheduling/routines.js';
import type { MonitorSource, MonitorConfig } from '../config.js';
import type { Observation } from './types.js';
/** Push-only: nothing to snapshot on a poll tick. */
export declare function evaluate(_source: MonitorSource): Promise<Observation | null>;
/** Project a monitor's webhook source onto a JobTrigger for the shared matcher. */
export declare function monitorTrigger(source: MonitorSource): JobTrigger | null;
/**
 * True when an incoming webhook matches this monitor's webhook source — reuses
 * the routines matcher (lib/triggers/webhook.ts) so github/linear filter
 * semantics stay in one place.
 */
export declare function matchWebhook(monitor: MonitorConfig, webhook: IncomingWebhook): boolean;
