import { StorageEventManagerBase, type StorageEventManagerBaseDependencies } from "@lib/managers/StorageEventManager"; import { CLIStorageEventManagerAdapter } from "./CLIStorageEventManagerAdapter"; import type { IMinimumLiveSyncCommands, LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; import type { ServiceContext } from "@lib/services/base/ServiceBase"; import type { IgnoreRules } from "../serviceModules/IgnoreRules"; // import type { IMinimumLiveSyncCommands } from "@lib/services/base/IService"; export class StorageEventManagerCLI extends StorageEventManagerBase { core: LiveSyncBaseCore; constructor( basePath: string, core: LiveSyncBaseCore, dependencies: StorageEventManagerBaseDependencies, ignoreRules?: IgnoreRules, watchEnabled?: boolean ) { const adapter = new CLIStorageEventManagerAdapter(basePath, ignoreRules, watchEnabled); super(adapter, dependencies); this.core = core; } /** * Override _watchVaultRawEvents for CLI-specific logic * In CLI, we don't have internal files like Obsidian's .obsidian folder */ protected override async _watchVaultRawEvents(path: string) { // No-op in CLI version // Internal file handling is not needed } /** * Close the file watcher. Call this during graceful shutdown. */ close(): Promise { return this.adapter.close(); } }