import { EventEmitter } from 'events';
import { type NervousSignal, type SignalBus } from '../nervous/signals';
export interface AmbientWatcherOptions {
    /** Watch this directory for filesystem changes. */
    watchDir?: string;
    /** Glob-ish path filter; signals are emitted only when filename matches one of these substrings. */
    fileFilters?: string[];
    /** Poll git status every N ms. Set to 0 to disable. */
    gitPollMs?: number;
    /** Tick the scheduler every N ms. Set to 0 to disable. */
    schedulerMs?: number;
    /** Project working directory (defaults to process.cwd()). */
    projectDir?: string;
    /** Debounce window in ms for filesystem events. */
    debounceMs?: number;
}
export interface AmbientDaemonHandle {
    stop: () => void;
    emitter: EventEmitter;
    isRunning: () => boolean;
    watchersActive: () => string[];
}
export declare function startAmbientDaemon(bus: SignalBus, options?: AmbientWatcherOptions): AmbientDaemonHandle;
/** Helper for tests: collect all signals emitted in a window. */
export declare function collectAmbientSignals(handle: AmbientDaemonHandle, windowMs: number): Promise<NervousSignal[]>;
//# sourceMappingURL=ambientDaemon.d.ts.map