import { EventEmitter } from 'events';
import { SpecParser, ParsedSpec } from './parser.js';
export interface SpecChangeEvent {
    type: 'spec' | 'steering';
    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<void>;
    stop(): Promise<void>;
    /**
     * 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;
    private handleSteeringChange;
}
//# sourceMappingURL=watcher.d.ts.map