import type { NormalizedOpenApiSpec } from "../lib/types.js"; import type { SecureSourceFs } from "./secure-source-fs.js"; interface WatchCoordinatorCallbacks { syncOpenApiSpecWatcher(): Promise; handleFileChange(action: string, filePath: string): Promise; handleFileDelete(filePath: string): Promise; handleConfigFileChange(filePath: string): Promise; handleConfigFileDelete(filePath: string): Promise; handleFontConfigChange(): Promise; handleFontConfigDelete(): Promise; handleAnalyticsConfigChange(): Promise; handleAnalyticsConfigDelete(): Promise; handleDoccupineConfigChange(): Promise; handleOpenApiChange(): Promise; copyPublicFiles(): Promise; handlePublicFileChange(filePath: string): Promise; handlePublicFileDelete(filePath: string): Promise; syncIconFiles(): Promise; processAllMDXFiles(): Promise; } interface WatchCoordinatorOptions { watchDir: string; rootDir: string; configFiles: readonly string[]; fontConfigFile: string; analyticsConfigFile: string; doccupineConfigFile: string; iconFiles: readonly string[]; sourceFs: SecureSourceFs; getOpenApiSpecs(): readonly NormalizedOpenApiSpec[]; getOpenApiSourceFiles(): readonly string[]; callbacks: WatchCoordinatorCallbacks; } export declare class WatchCoordinator { private readonly options; private watcher; private configWatcher; private fontWatcher; private publicWatcher; private rootDirWatcher; private analyticsWatcher; private openApiWatcher; private doccupineConfigWatcher; private mutationQueue; private stopping; private readyCancellations; private pendingWatcherClosures; private sourceSnapshot; private publicWatcherStarting; private publicWatcherRestartRequested; constructor(options: WatchCoordinatorOptions); private enqueueMutation; private closeDetachedWatcher; private waitForWatcherReady; private trackWatcherReady; private waitForPublicWatcherReady; private captureSourceSnapshot; establishSourceSnapshot(projectSourceStates?: Readonly>, openApiSourceState?: string, doccupineSourceState?: string): Promise; private reconcileWatchedSources; startWatching(): Promise; private startWatchers; private setupPublicWatcher; syncOpenApiSpecWatcher(specs: readonly NormalizedOpenApiSpec[], sourceFiles?: readonly string[]): Promise; stop(): Promise; private drainMutationQueue; private closeCurrentWatchers; } export {};