import { type SpawnSyncReturns } from 'node:child_process'; import type { Readable, Writable } from 'node:stream'; interface InstallPaths { binDir: string; canonicalBinaryPath: string; convenienceShimPath?: string; manifestPath: string; root: string; windowsCommandShimPath?: string; } interface InstallManifest { canonicalBinaryPath: string; cliName: 'nve'; installedAt: string; pathResolutionWorkedDuringInstall: boolean; platform: string; shimPaths: string[]; version: string; } interface InstallContext { env: NodeJS.ProcessEnv; log: (message: string) => void; now: () => Date; paths: InstallPaths; platform: NodeJS.Platform; prompt: (question: string) => Promise; source: string; warn: (message: string) => void; } interface InstallOptions { env?: NodeJS.ProcessEnv; log?: (message: string) => void; now?: () => Date; platform?: NodeJS.Platform; prompt?: (question: string) => Promise; source?: string; warn?: (message: string) => void; } interface InstallResult extends InstallManifest { directCanonicalExecutionWorked: boolean; manifestPath: string; pathExecutable: string; restrictedPathExecutionWorked: boolean; } export declare function installNve(options?: InstallOptions): Promise; export declare function getInstallPaths(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): InstallPaths; declare function createWindowsCommandShim(shimPath: string): Promise; declare function setupWindowsPath(binDir: string, env: NodeJS.ProcessEnv, warn: (message: string) => void): void; declare function powershellSingleQuote(value: string): string; declare function prependPathEntry(entry: string, env: NodeJS.ProcessEnv, platform: NodeJS.Platform): void; declare function hasPathEntry(pathValue: string, entry: string, platform: NodeJS.Platform): boolean; declare function normalizePathEntry(pathEntry: string, platform: NodeJS.Platform): string; declare function spawnVersion(binaryPath: string, env: NodeJS.ProcessEnv, platform: NodeJS.Platform): SpawnSyncReturns; declare function findExecutableOnPath(command: string, env: NodeJS.ProcessEnv, platform: NodeJS.Platform): string | undefined; declare function getManifestPlatform(platform: NodeJS.Platform): string; declare function promptFromTerminal(question: string, platform: NodeJS.Platform): Promise; declare function readPrompt(question: string, input: Readable, output: Writable): Promise; declare function getDiagnostics({ env, paths, platform }: InstallContext, pathExecutable: string, restrictedPathExecutionWorked: boolean): string[]; declare function getPathEntries(env: NodeJS.ProcessEnv, platform: NodeJS.Platform): string[]; declare function getCommandPath(env: NodeJS.ProcessEnv): string; declare function getPowerShellCommandPath(env: NodeJS.ProcessEnv): string; declare function getWhereCommandPath(env: NodeJS.ProcessEnv): string; export declare const installInternals: { createWindowsCommandShim: typeof createWindowsCommandShim; findExecutableOnPath: typeof findExecutableOnPath; getCommandPath: typeof getCommandPath; getDiagnostics: typeof getDiagnostics; getManifestPlatform: typeof getManifestPlatform; getPathEntries: typeof getPathEntries; getPowerShellCommandPath: typeof getPowerShellCommandPath; getWhereCommandPath: typeof getWhereCommandPath; hasPathEntry: typeof hasPathEntry; normalizePathEntry: typeof normalizePathEntry; powershellSingleQuote: typeof powershellSingleQuote; prependPathEntry: typeof prependPathEntry; promptFromTerminal: typeof promptFromTerminal; readPrompt: typeof readPrompt; spawnVersion: typeof spawnVersion; setupWindowsPath: typeof setupWindowsPath; }; export {};