import { RemoteSandbox } from '@struktoai/mirage-core/runtime/sandbox/base'; import type { RunResult, RuntimeOptions } from '@struktoai/mirage-core/runtime/types'; import { type SmolvmConfig } from './config.ts'; interface SmolvmResult { stdout: Uint8Array; stderr: Uint8Array; code: number; } /** * A microVM the user runs as a whole-line runtime. * * You start the machine yourself; mirage only connects to it and * execs lines. The smolvm CLI is the transport, so there is no SDK * dependency and no daemon socket wiring; each line is one `smolvm * machine exec` with the merged environment, the rebased cwd, real * stdin, and separated stderr. * * Unlike a container, the guest runs its own kernel, so the line sees * that kernel's filesystem and nothing of the host's except what the * machine was given at boot (`--volume`). Serve the workspace inside * the guest at the host's mount prefixes, the same contract every * provider in this family carries. */ export declare class SmolvmRuntime extends RemoteSandbox { readonly name = "smolvm"; constructor(options?: RuntimeOptions | Record); protected smolvm(args: string[], stdin?: Uint8Array | null): Promise; /** * Probe the machine, refusing any state that cannot take a line. * * `machine exec` would start a stopped machine on its own, but this * family never manages sandbox lifecycle, so a machine that is not * already running is an error rather than a boot. */ connect(): Promise; execLine(line: string, stdin: Uint8Array | null, env: Record, cwd: string): Promise; } export {}; //# sourceMappingURL=runtime.d.ts.map