/**
 * File Watcher Service
 * Handles real-time file system monitoring for code changes and TTL file synchronization
 */
import { EventEmitter } from 'events';
import { FileStats, Repository, FileWatcherConfig } from './types';
export declare class FileWatcher extends EventEmitter {
    private watchers;
    private repositories;
    private config;
    constructor(config?: Partial<FileWatcherConfig>);
    /**
     * Initialize file watcher service
     */
    initialize(): Promise<void>;
    /**
     * Start watching a repository
     */
    startWatching(repository: Repository): Promise<void>;
    /**
     * Stop watching a repository
     */
    stopWatching(watcherId: string): Promise<void>;
    /**
     * Get watched files for a repository
     */
    getWatchedFiles(repositoryId: string): Promise<string[]>;
    /**
     * Check if a file should be watched based on repository configuration
     */
    shouldWatchFile(repositoryId: string, filePath: string): boolean;
    /**
     * Get file statistics
     */
    getFileStats(filePath: string): Promise<FileStats>;
    /**
     * Cleanup all watchers
     */
    cleanup(): Promise<void>;
    private createWatchPatterns;
    private setupWatcherEvents;
    private createFileWatchEvent;
    private handleFileEvent;
    private handleTTLFileChange;
    private detectFileLanguage;
    private setupErrorHandling;
}
export default FileWatcher;
//# sourceMappingURL=FileWatcher.d.ts.map