export declare function findNpmRoot(extDir: string): string | undefined; export type NpmRunner = (args: string[], cwd: string) => Promise<{ code: number; stdout: string; stderr: string; }>; export type NodeRunner = (args: string[]) => Promise<{ code: number; stdout: string; stderr: string; }>; export declare function setRunNpmForTest(impl: NpmRunner | undefined): void; export declare function setRunNodeForTest(impl: NodeRunner | undefined): void; export type InstallOutcome = "ok" | "failed" | "rolled-back"; /** * npmDirOverride exists only for tests: the test process is not installed * under a node_modules tree, so the real discovery walk can never reach a * fixture. Production callers pass nothing and discovery runs as usual. */ export declare function autoInstallLatest(latest: string, npmDirOverride?: string): Promise; export declare function checkForUpdate(autoUpdate: boolean, notify?: (msg: string) => void): Promise;