export interface IDisposable { dispose(): void; } /** * Watches a file path for change/create events. * VS Code implementation uses `vscode.workspace.createFileSystemWatcher`. * Node.js implementation uses `fs.watch` on the parent directory. */ export interface IFileWatcher { watch(filePath: string, onChange: () => void): IDisposable; } /** * Launches a shell command in a named context. * VS Code implementation creates an integrated terminal. * Node.js implementation uses `child_process.spawn`. */ export interface IProcessLauncher { launch(cmd: string, name: string, cwd: string): void; } /** * Watches the parent directory of `filePath` and fires `onChange` whenever * the target file changes or is created. Handles non-existent directories * gracefully (watcher is a no-op until the directory appears). */ export declare class NodeFileWatcher implements IFileWatcher { watch(filePath: string, onChange: () => void): IDisposable; } /** * Spawns a shell process (stdout/stderr inherited to the parent process). * On Windows uses `powershell -Command`; on Unix uses `/bin/sh -c`. */ export declare class NodeProcessLauncher implements IProcessLauncher { launch(cmd: string, name: string, cwd: string): void; }