/**
 * File watcher service using chokidar.
 * Watches project directories for changes, debounces events,
 * and emits fs_changed messages with sequence tracking.
 */
import type { FsChangedEvent } from "@pocketcoder/shared";
export type FsChangedCallback = (event: FsChangedEvent) => void;
export interface FileWatcherOptions {
    projectId: string;
    projectPath: string;
    onFsChanged: FsChangedCallback;
    /** Override debounce ms for testing. Defaults to FS_DEBOUNCE_MIN_MS (250). */
    debounceMs?: number;
}
export declare class FileWatcher {
    private watcher;
    private pendingChanges;
    private debounceTimer;
    private readonly projectId;
    private readonly projectPath;
    private readonly onFsChanged;
    private readonly debounceMs;
    constructor(options: FileWatcherOptions);
    /** Start watching the project directory. */
    start(): void;
    /** Stop watching and flush any pending changes. */
    stop(): Promise<void>;
    /** Whether the watcher is currently active. */
    get isWatching(): boolean;
    /** Schedule a debounced flush of pending changes. */
    private scheduleFlush;
    /** Flush pending changes as an fs_changed event. */
    private flush;
}
//# sourceMappingURL=file-watcher.d.ts.map