import { EventEmitter } from 'events'; import type { Logger } from './logger.js'; export interface FileChange { path: string; exists: boolean; new?: boolean; size?: number; mode?: number; } export interface WatchSubscription { expression: Array>; fields: string[]; defer?: string[]; drop?: string[]; settle?: number; } export declare class WatchmanClient extends EventEmitter { private client; private watchRoot?; private logger; private subscriptions; private clock?; constructor(logger: Logger); connect(): Promise; watchProject(projectRoot: string): Promise; subscribe(projectRoot: string, subscriptionName: string, subscription: { expression: Array>; fields: string[]; }, callback: (files: Array<{ name: string; exists: boolean; type?: string; }>) => void, exclusionExpressions?: Array<[string, string[]]>): Promise; unsubscribe(subscriptionName: string): Promise; disconnect(): Promise; isConnected(): boolean; } //# sourceMappingURL=watchman.d.ts.map