import type { ShellResult, ShellCommand } from "./shell-types"; import type { MemoryVolume } from "../memory-volume"; export type SpawnChildCallback = (command: string, args: string[], opts?: { cwd?: string; env?: Record; stdio?: "pipe" | "inherit"; }) => Promise<{ pid: number; exitCode: number; stdout: string; stderr: string; }>; export declare class NodepodShell { private volume; private cwd; private env; private commands; private lastExit; private aliases; private _execQueue; private _spawnChild; constructor(volume: MemoryVolume, opts?: { cwd?: string; env?: Record; }); registerCommand(cmd: ShellCommand): void; setSpawnChildCallback(cb: SpawnChildCallback | null): void; getSpawnChildCallback(): SpawnChildCallback | null; getCwd(): string; setCwd(cwd: string): void; getEnv(): Record; exec(command: string, opts?: { cwd?: string; env?: Record; }): Promise; private _execInner; private execList; private execPipeline; private execCommand; private buildContext; private resolvePath; private resolveFromPath; private normalizePath; private applyRedirects; private expandCommandSubstitution; private handleAlias; private handleSource; }