import type { SandboxProviderHandle, SandboxProviderHost } from "#shared/sandbox-provider.js"; import type { SandboxSession } from "#shared/sandbox-session.js"; import type { JustBashSandboxCreateOptions } from "#public/sandbox/just-bash-sandbox.js"; import type { SandboxProcess, SandboxRemovePathOptions, SandboxSpawnOptions } from "#shared/sandbox-session.js"; export interface JustBashSessionMetadata { readonly rootPath: string; } export interface BashSandbox { captureState(): Promise; dispose(): Promise; readFileBytes(path: string): Promise; removePath(options: SandboxRemovePathOptions): Promise; readonly rootPath: string; readonly sessionKey: string; spawn(options: SandboxSpawnOptions): Promise; writeFiles(files: ReadonlyArray<{ path: string; content: string | Uint8Array; }>): Promise; } export declare function createBashSandbox(input: { readonly autoInstall: boolean; readonly host: SandboxProviderHost; readonly customCommands?: JustBashSandboxCreateOptions["customCommands"]; readonly filesystem?: JustBashSandboxCreateOptions["filesystem"]; readonly rootPath: string; readonly sessionKey: string; readonly storagePath: string; }): Promise; /** * The just-bash engine cannot honor a run-time network policy: just-bash takes * its `NetworkConfig` only at sandbox creation (no live update) and runs no * `git` or other binaries, so credential brokering has nothing to act on. * Throw rather than silently no-op so brokering code surfaces the gap instead * of leaking. */ export declare function createJustBashHandle(sandbox: BashSandbox): SandboxProviderHandle;