import type { SSEEventType } from '../types.js';
export interface WatchEvent {
    type: SSEEventType;
    data: Record<string, unknown>;
}
export declare class FileWatcher {
    private projectRoot;
    private onEvent;
    private debounceMs;
    private watchers;
    private debounceTimers;
    private watchedFiles;
    private fileTargets;
    private retryInterval;
    constructor(projectRoot: string, onEvent: (event: WatchEvent) => void, debounceMs?: number);
    private startWatching;
    /** Retry watching files that didn't exist at startup */
    private retryMissingFiles;
    private watchFile;
    private debouncedEmit;
    /** Stop all watchers and clear timers */
    close(): void;
}
//# sourceMappingURL=file-watcher.d.ts.map