import { type LoggedEvent } from "../domain/event-log.ts"; import { type RunMetrics } from "../domain/run-metrics.ts"; export interface WatchOptions { diabloDir: string; issue: string; /** One-shot mode: print snapshot and exit (non-TTY or --plain). */ plain: boolean; /** Poll interval in ms (default 2000). */ intervalMs?: number; } export interface SnapshotResult { output: string; metrics: RunMetrics; /** Whether the run has reached a terminal state (done/halted). */ isTerminal: boolean; } /** * Build a watch snapshot from parsed events. Pure — no I/O. */ export declare function buildSnapshot(events: LoggedEvent[], issue: string, colour?: boolean): SnapshotResult; /** * Check if the event count has changed (new events appended). * Returns true only when count increased. */ export declare function shouldRefresh(currentCount: number, previousCount: number): boolean; /** * Run the watch command. Entry point called from main.ts. */ export declare function runWatch(opts: WatchOptions): Promise;