/** A running watch over one or more config files; call stop() to release it. */ export interface ConfigFileWatchHandle { stop(): void; } /** * Watch each path for content changes (mtime, size, or existence), invoking * `onChange` once per poll in which at least one watched path changed. * Duplicate paths are watched once. */ export declare function watchConfigFiles(paths: readonly string[], onChange: () => void, intervalMs?: number): ConfigFileWatchHandle; /** Injectable dependencies for reloadAndNotifyChanges (ConfigManager provides these). */ export interface ReloadDeps { readonly listenerKeys: Iterable; readonly get: (key: string) => unknown; readonly load: () => void; readonly notify: (key: string, oldValue: unknown, newValue: unknown) => void; } /** * Snapshot every subscribed key, reload from disk, then fire `notify` for each * key whose value actually changed, so an in-process set() that already * notified does not double-fire (its value is unchanged on reload), and an * external edit reaches subscribers exactly once. A failed reload keeps the * in-memory config and notifies nobody. */ export declare function reloadAndNotifyChanges(deps: ReloadDeps): void; //# sourceMappingURL=config-file-watcher.d.ts.map