import { EventEmitter } from 'node:events'; import type { PipelineProgress } from '../types.js'; export interface WatcherOptions { debounceMs?: number; } export interface WatchAsyncOptions extends WatcherOptions { onProgress?: (p: PipelineProgress) => void; force?: boolean; codeOnly?: boolean; llmMaxSections?: number; /** Auto-stop after this many ms of no file changes. Default 30min. 0 = never. */ idleTimeoutMs?: number; /** Delay before retrying a rebuild that found the build lock held. Default 2000ms. */ retryDelayMs?: number; } /** Convenience: start a watcher and trigger buildAsync on every change. Returns stop() fn. */ export declare function watchAsync(repoPath: string, opts?: WatchAsyncOptions): Promise<{ stop: () => Promise; }>; export declare class MonographWatcher extends EventEmitter { private readonly repoPath; private watcher; private debounceTimer; private pendingChanges; private readonly debounceMs; constructor(repoPath: string, opts?: WatcherOptions); start(): Promise; stop(): Promise; private handleChange; } //# sourceMappingURL=watcher.d.ts.map