import { EventEmitter } from 'events';
/**
 * Options for configuring the FileWatcher
 */
export interface FileWatcherOptions {
    /** File patterns to watch (glob patterns supported) */
    patterns: string[];
    /** Watch directories recursively */
    recursive?: boolean;
    /** Debounce delay in milliseconds */
    debounceMs?: number;
    /** Patterns to ignore */
    ignored?: string[];
    /** Current working directory */
    cwd?: string;
}
/**
 * Event emitted when a file changes
 */
export interface FileChangeEvent {
    /** Type of change */
    type: 'add' | 'change' | 'unlink';
    /** Path to the changed file */
    path: string;
    /** Timestamp of the change */
    timestamp: Date;
}
/**
 * Cross-platform file watcher with debouncing support.
 * Uses chokidar for reliable file system watching.
 */
export declare class FileWatcher extends EventEmitter {
    private watcher;
    private options;
    private debounceTimers;
    private isReady;
    constructor(options: FileWatcherOptions);
    /**
     * Start watching for file changes
     */
    start(): Promise<void>;
    /**
     * Stop watching for file changes
     */
    stop(): Promise<void>;
    /**
     * Get the list of watched paths
     */
    getWatchedPaths(): string[];
    /**
     * Check if the watcher is ready
     */
    isWatcherReady(): boolean;
    private handleChange;
}
//# sourceMappingURL=FileWatcher.d.ts.map