import type { ChangeReport, StageResult, WatchJobInput, WatchJobOutput } from '../types.js';
import type { SmartRouter } from '../fetch/router.js';
/**
 * Lazy-execution model: there is no background daemon. A job's check fires
 * only when:
 *   1. `watch({ action: 'check', job_id })` is called explicitly, OR
 *   2. Any other tool runs and the job is overdue — the server dispatch
 *      chain calls `scheduleOverdueCheck(router)` after handling the
 *      caller's primary request.
 *
 * SSRF guards are applied at registration time so a bad URL can never
 * land in persistent state. The webhook URL receives the same guard.
 */
export declare function handleWatch(input: WatchJobInput, router: SmartRouter): Promise<StageResult<WatchJobOutput>>;
/**
 * Surrogate ChangeReport for action paths that need to express "no change
 * yet" without hitting the network — kept as a helper for tests + future
 * docs surfaces.
 */
export declare function _emptyChangeReport(url: string): ChangeReport;
//# sourceMappingURL=watch.d.ts.map