import type { SmartRouter } from '../fetch/router.js';
import type { ChangeReport, WatchJob } from '../types.js';
/**
 * Run a single watch job. Fetches the URL (re-using the existing fetch
 * tier — http, smart-router escalation to Playwright when the page
 * requires JS, the local cache when fresh enough), hashes the body, and
 * compares against the previous content hash stored on the job.
 *
 * NOTE: the spec called for an optional CSS selector to scope the diff.
 * The current fetch path returns full-page markdown; scoping by selector
 * is a feature follow-up — the column is persisted now so the watch tool
 * surface is forward-compatible, but the selector is not yet honoured by
 * the diff and we surface that limitation in the scheduler's log line.
 */
export declare function runCheck(job: WatchJob, router: SmartRouter): Promise<ChangeReport>;
export declare function triggerOverdueJobs(router: SmartRouter): Promise<void>;
/**
 * Schedule the lazy hook without blocking the caller. The MCP tool
 * dispatch chain calls this; we deliberately swallow the returned promise
 * because tool-level latency must not be inflated by overdue watch jobs.
 */
export declare function scheduleOverdueCheck(router: SmartRouter): void;
/** Test-only — reset the in-process re-entrancy guard between cases. */
export declare function _resetSchedulerGuard(): void;
//# sourceMappingURL=scheduler.d.ts.map