import type { Server as SocketIOServer } from "socket.io"; export interface MonitorRunnerConfig { io: SocketIOServer; db: any; schema: { monitors: any; monitorResults: any; proxies: any; insightIncidents?: any; pulseNotificationConfig?: any; }; orm: { eq: any; desc: any; inArray: any; }; notificationService?: any; logger?: { error: (err: any, msg: string) => void; warn: (msg: string) => void; info: (msg: string) => void; }; } /** * MonitorRunner - Manages scheduled monitoring checks * * This class handles: * - Scheduling periodic checks for all monitors * - Running health checks based on monitor type * - Storing results in the database * - Broadcasting updates via Socket.IO * - Managing push-based monitors */ export declare class MonitorRunner { private io; private db; private schema; private orm; private logger; private notificationService; private timers; private pushState; private reloader?; constructor(config: MonitorRunnerConfig); /** * Start the monitor runner * Loads all monitors and schedules periodic reloads */ start(): Promise; /** * Stop the monitor runner * Clears all timers and intervals */ stop(): void; /** * Reload all monitors from database * Updates scheduled checks based on current monitor configuration */ reloadAll(): Promise; /** * Schedule a monitor for periodic checks */ private schedule; /** * Run a single check for a monitor */ runOnce(monitorId: string): Promise; /** * Save check result to database and emit events */ private saveResult; /** * Mark a push monitor as received * Called from push route */ markPush(token: string): boolean; /** * Get latest result for a monitor */ latestForMonitor(monitorId: string): Promise; } //# sourceMappingURL=runner.d.ts.map