import type { WatcherEvent, DebouncerConfig, DebouncedCallback } from '../../types/file-hooks.js';
export declare class Debouncer {
    private readonly config;
    /** Pending debounce timers per file path */
    private readonly pendingTimers;
    /** Pending event per file (latest wins) */
    private readonly pendingEvents;
    /** Rate limit buckets per file path */
    private readonly fileBuckets;
    /** Rate limit buckets per spec ID */
    private readonly specBuckets;
    private readonly callback;
    constructor(callback: DebouncedCallback, config?: Partial<DebouncerConfig>);
    /**
     * Feed a raw watcher event. The debouncer will coalesce rapid events
     * and apply rate limiting before invoking the callback.
     */
    push(event: WatcherEvent): void;
    /**
     * Check spec-level rate limit for auto-reconcile.
     * Returns true if allowed, false if rate-limited.
     */
    checkSpecRateLimit(specId: string): boolean;
    /**
     * Cancel all pending timers and clear state.
     */
    dispose(): void;
    private tryEmit;
}
//# sourceMappingURL=debouncer.d.ts.map