/**
 * @fileoverview Event-loop lag monitor.
 *
 * Node is single-threaded: any synchronous work (e.g. a blocking `execSync`)
 * freezes the whole event loop, so the HTTP server stops answering on its port
 * while the process stays alive and other ports are unaffected. Such stalls
 * self-heal and never restart the process, so a periodic loopback healthcheck
 * misses them entirely — they leave no trace.
 *
 * This monitor samples how late a fixed-interval timer actually fires versus when
 * it was scheduled; the excess is time the loop was blocked. When that exceeds a
 * threshold it logs the measured stall, turning otherwise-invisible "port briefly
 * unreachable" incidents into a timestamped, quantified log line.
 *
 * @module utils/event-loop-monitor
 */
export interface EventLoopMonitorHandle {
    stop(): void;
}
/**
 * Start sampling event-loop lag.
 *
 * @param sampleMs    How often to sample (and the baseline interval lag is measured against).
 * @param thresholdMs Only stalls at or above this many ms are logged (noise floor).
 * @param log         Sink for stall reports; defaults to console.warn (lands in the web log).
 */
export declare function startEventLoopMonitor(sampleMs?: number, thresholdMs?: number, log?: (msg: string) => void): EventLoopMonitorHandle;
//# sourceMappingURL=event-loop-monitor.d.ts.map