import { EventEmitter } from 'events'; import { SpecParser, ParsedSpec } from './parser.js'; export interface SpecChangeEvent { type: 'spec' | 'steering' | 'decomposition' | 'deferral'; action: 'created' | 'updated' | 'deleted'; name: string; data?: ParsedSpec | any; } export declare class SpecWatcher extends EventEmitter { private projectPath; private parser; private watcher?; private pendingChanges; private readonly DEBOUNCE_MS; constructor(projectPath: string, parser: SpecParser); start(): Promise; stop(): Promise; /** * Schedule a debounced file change event * Coalesces rapid changes to the same file */ private scheduleFileChange; /** * Wait for file size to stabilize before processing * Returns true if file is stable, false if file doesn't exist or timeout reached */ private waitForFileStability; private handleFileChange; private handleSpecChange; /** * Signal that the deferral store changed. Carries no payload — the dashboard * re-reads the deferrals endpoint, which owns duplicate detection and the * deferred-spec roll-up. */ private handleDeferralChange; private handleSteeringChange; } //# sourceMappingURL=watcher.d.ts.map