import type { NodeMonitor } from "../contracts/orchestration.js";
export interface MonitorOptions {
    heartbeatIntervalMs?: number;
    stallThresholdMultiplier?: number;
    onStall?: (monitor: NodeMonitor) => void;
    onKill?: (monitor: NodeMonitor) => void;
    onRecover?: (monitor: NodeMonitor) => void;
}
export interface NodeMonitorEngine {
    register(nodeId: string, runId: string): void;
    heartbeat(nodeId: string, runId: string): void;
    unregister(nodeId: string, runId: string): void;
    getStatus(nodeId: string, runId: string): NodeMonitor | undefined;
    checkAll(): NodeMonitor[];
    dispose(): void;
}
export declare function createNodeMonitorEngine(options?: MonitorOptions): NodeMonitorEngine;
export declare function forciblyRemoveMonitor(engine: NodeMonitorEngine, nodeId: string, runId: string): void;
