/** * Result of a single setup step */ export interface SetupStepResult { status: "success" | "skipped" | "failed"; message: string; } /** * Complete setup result with all steps */ export interface SetupResult { binary: SetupStepResult; install: SetupStepResult; mcp: SetupStepResult; commands: SetupStepResult; skills: SetupStepResult; worker: SetupStepResult; } /** * Dependency injection interface for setup operations. * Abstracts filesystem, process execution, and logging for testability. */ export interface SetupDeps { /** Check if a command exists in PATH */ which: (cmd: string) => string | null; /** Check if a file exists */ fileExists: (path: string) => Promise; /** Read and parse JSON file */ readJson: (path: string) => Promise; /** Write string data to file */ writeFile: (path: string, data: string) => Promise; /** Copy directory recursively */ copyDir: (src: string, dest: string, opts?: { recursive?: boolean; }) => Promise; /** Create directory recursively */ mkdirp: (path: string) => Promise; /** Execute command and return exit code and stdout */ exec: (cmd: string[]) => Promise<{ exitCode: number; stdout?: string; }>; /** Log a message with optional level */ log: (msg: string, level?: "info" | "warn" | "error") => void; /** Plugin root directory path */ pluginDir: string; /** Get the claude-mem worker port */ getWorkerPort: () => number; /** Start the claude-mem worker (returns true if running after call) */ startWorker?: (port: number) => Promise; } /** * Create default dependencies using Bun and Node.js APIs */ export declare function createDefaultDeps(log: (msg: string, level?: "info" | "warn" | "error") => void): SetupDeps; //# sourceMappingURL=types.d.ts.map