import { EventEmitter } from 'events'; import type { GitFileChange, GitWatcherBatch } from './types'; interface BatchAccumulatorConfig { debounceMs?: number; repoPath?: string; codebaseId?: string; workspaceId?: string; } /** * Accumulates file changes and emits batches after debounce timeout */ export declare class BatchAccumulator extends EventEmitter { private changes; private debounceTimer; private debounceMs; private repoPath; private codebaseId; private workspaceId; constructor(config?: BatchAccumulatorConfig); /** * Add a file change to the accumulator */ add(change: GitFileChange): void; /** * Add multiple changes at once */ addMultiple(changes: GitFileChange[]): void; /** * Get pending changes without emitting batch */ getPending(): GitFileChange[]; /** * Manually flush pending changes as a batch */ flush(): Promise; /** * Stop the accumulator and clear timers */ stop(): void; /** * Reset debounce timer */ private resetDebounce; } export {}; //# sourceMappingURL=batch-accumulator.d.ts.map