import { FileProcessor } from './fileProcessor.js';
type FileChangeCallback = (type: 'add' | 'change' | 'unlink', filePath: string) => Promise<void>;
export declare class FileWatcher {
    private watchers;
    private fileProcessor;
    private processedPaths;
    private processingQueue;
    private onFileChange;
    private ignorePatternMatcher;
    constructor(fileProcessor: FileProcessor, onFileChange: FileChangeCallback, ignoreFilePath?: string | null);
    initializeIgnorePatterns(): Promise<void>;
    setWatchedDirectories(directories: string[]): void;
    setupDirectoryWatch(dirPath: string): void;
    processDirectory(dirPath: string): Promise<void>;
    watchDirectory(dirPath: string): Promise<void>;
    private processExistingFiles;
    private setupWatcher;
    private handleFileChange;
    isProcessing(filePath: string): boolean;
    close(): Promise<void>;
}
export {};
