export declare const DEFAULT_DOCKER_IMAGE = "node:22-slim"; /** * runtime adapter. The container CLI supports both docker and * podman as the underlying runtime. The auto-detect order is: * 1. `--runtime docker|podman` if explicit * 2. docker (most common, ships with Docker Desktop on * macOS/Windows, docker.io on Linux) * 3. podman (RHEL/Fedora default, runs rootless by default, * same CLI surface as docker) * Each runtime has the same spawn/release shape; the * difference is the binary name (`docker` vs `podman`). The * `--cidfile` flag is supported by both. */ export type ContainerRuntime = 'docker' | 'podman'; /** A runtime that answered `--version`, or the reason none did. */ export type ContainerRuntimeProbe = { ok: true; runtime: ContainerRuntime; binary: string; } | { ok: false; stderr: string; hint: string; }; export declare function detectContainerRuntime(explicit: ContainerRuntime | undefined): ContainerRuntimeProbe; export type ContainerOptions = { session?: string; project?: string; json?: boolean; }; export type SpawnOptions = ContainerOptions & { rid: string; role: string; purpose: string; image?: string; ttl?: string; mount?: string; /** Part 43: explicit runtime selector (docker | podman). */ runtime?: string; }; export type ReleaseOptions = ContainerOptions & { leaseId: string; }; export declare function joinPathSession(projectRoot: string, sessionId: string): string; /** * Resolve the project root and session id every container verb works against. * The sid falls back through `PEAKS_SESSION_ID` and the canonical binding * before the `unknown-sid` sentinel. */ export declare function resolveContainerTarget(options: ContainerOptions): { projectRoot: string; sessionId: string; }; export declare function checkDockerAvailable(): { ok: true; version: string; } | { ok: false; stderr: string; };