export { POWERSHELL_STARTUP_PROBE_TIMEOUT_MS } from "./powershell-session-protocol.ts"; export type PlatformShellToolName = "bash" | "powershell"; export interface ShellConfig { shell: string; args: string[]; } export declare function getPlatformShellToolName(platform?: NodeJS.Platform): PlatformShellToolName; /** * Ordered PowerShell candidates without launching a disposable interpreter. Persistent sessions * validate these candidates with their real long-lived bootstrap, so the normal path pays for one * PowerShell process instead of probing one process and then spawning another. */ export declare function getPowerShellCandidateConfigs(): ShellConfig[]; /** Resolve the requested shell. Runtime callers omit shellName to select PowerShell on Windows and Bash elsewhere. */ export declare function getShellConfig(customShellPath?: string, shellName?: PlatformShellToolName): ShellConfig; export declare function getShellEnv(): NodeJS.ProcessEnv; export declare function trackDetachedChildPid(pid: number): void; export declare function untrackDetachedChildPid(pid: number): void; export declare function killTrackedDetachedChildren(): void; /** * Kill a process and all its children (cross-platform). * * Windows dispatches tree kill via synchronous `taskkill /F /T /PID `. Callers awaiting * full directory/handle release must still synchronize on the child process's terminal `close` * event to ensure Node and OS handles have completed teardown before directory removal. */ export declare function killProcessTree(pid: number): void; //# sourceMappingURL=shell.d.ts.map