import { type GithubPollAdapter } from "./github-sync.js"; import { type PaneHealthAdapter } from "./pane-health.js"; import type { StopAdapter } from "./result-service.js"; import type { Clock, KernelPaths, MonitorRecord, RunRecord } from "./types.js"; export interface MonitorTickResult { readonly actions: readonly string[]; readonly monitor: MonitorRecord; readonly run: RunRecord | null; readonly eventsCreated: number; readonly staleRejected: number; readonly physicalWakesDelivered: number; } export interface MonitorSession { readonly owner: string; readonly generation: number; readonly processInstanceId: string; } export interface PhysicalWakeRequest { readonly event_id: string; readonly conductor_session_id: string | null; } export interface MonitorTickAdapters { readonly githubPoll?: GithubPollAdapter; readonly paneHealth?: PaneHealthAdapter; readonly physicalWake?: (request: PhysicalWakeRequest) => void; readonly stopAdapter?: StopAdapter; } export declare function startMonitorSession(paths: KernelPaths, clock: Clock, owner: string, processInstanceId: string, pid?: number, expectedGeneration?: number): MonitorSession; export declare function stopMonitorSession(paths: KernelPaths, clock: Clock, session: MonitorSession): void; export declare function tickMonitor(paths: KernelPaths, clock: Clock, session: MonitorSession, adapters?: MonitorTickAdapters): MonitorTickResult; /** * Deliver only the exact oldest durable wake. A successful callback journals * wake_sent but does not consume the claim; advance_campaign owns acknowledgment. * Unacknowledged sends are retried after WAKE_ACK_RETRY_MS. */ export declare function drainPhysicalWakes(paths: KernelPaths, clock: Clock, session: MonitorSession, physicalWake?: (request: PhysicalWakeRequest) => void): number;