import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; export type ContainerRuntime = "docker" | "podman" | "nerdctl" | null; export interface ContainerInfo { id: string; name: string; image: string; status: "running" | "exited" | "paused" | "created"; ports: string; created: string; size?: string; } export interface RuntimeState { runtime: ContainerRuntime; version: string; available: boolean; } /** * Try each container runtime and return the first one that works. */ export declare function detectRuntime(pi: ExtensionAPI): Promise; /** * List containers using the detected runtime. */ export declare function listContainers(pi: ExtensionAPI, runtime: ContainerRuntime, all?: boolean): Promise; /** * Get logs from a container. */ export declare function getContainerLogs(pi: ExtensionAPI, runtime: ContainerRuntime, id: string, lines?: number): Promise; /** * Prune stopped containers. */ export declare function pruneContainers(pi: ExtensionAPI, runtime: ContainerRuntime): Promise<{ success: boolean; freed: string; output: string; }>; export declare function pruneImages(pi: ExtensionAPI, runtime: ContainerRuntime): Promise<{ success: boolean; freed: string; output: string; }>; export declare function pruneSystem(pi: ExtensionAPI, runtime: ContainerRuntime): Promise<{ success: boolean; freed: string; output: string; }>; export declare function findContainer(pi: ExtensionAPI, runtime: ContainerRuntime, search: string): Promise; export interface ImageInfo { id: string; repository: string; tag: string; size: string; created: string; } /** * List images. */ export declare function listImages(pi: ExtensionAPI, runtime: ContainerRuntime): Promise; /** * Stop a container. */ export declare function stopContainer(pi: ExtensionAPI, runtime: ContainerRuntime, id: string, timeout?: number): Promise<{ success: boolean; output: string; }>; /** * Start a container. */ export declare function startContainer(pi: ExtensionAPI, runtime: ContainerRuntime, id: string): Promise<{ success: boolean; output: string; }>; /** * Restart a container. */ export declare function restartContainer(pi: ExtensionAPI, runtime: ContainerRuntime, id: string, timeout?: number): Promise<{ success: boolean; output: string; }>; /** * Get basic resource stats for running containers (CPU, memory). */ export interface ContainerStat { id: string; name: string; cpuPercent: string; memoryUsage: string; memoryLimit: string; memoryPercent: string; netIO: string; } export declare function getContainerStats(pi: ExtensionAPI, runtime: ContainerRuntime): Promise; /** * Inspect a container (returns JSON string). */ export declare function inspectContainer(pi: ExtensionAPI, runtime: ContainerRuntime, id: string): Promise<{ success: boolean; data: string; }>; /** * Get processes running inside a container. */ export declare function getContainerTop(pi: ExtensionAPI, runtime: ContainerRuntime, id: string): Promise<{ success: boolean; output: string; }>; /** * Remove a container by ID or name. */ export declare function removeContainer(pi: ExtensionAPI, runtime: ContainerRuntime, id: string, force?: boolean): Promise<{ success: boolean; output: string; }>; /** * Remove an image by ID or name. */ export declare function removeImage(pi: ExtensionAPI, runtime: ContainerRuntime, id: string): Promise<{ success: boolean; output: string; freed: string; }>; /** * Find an image by ID prefix or repo:tag. */ export declare function findImage(pi: ExtensionAPI, runtime: ContainerRuntime, search: string): Promise<{ id: string; repository: string; tag: string; } | null>; //# sourceMappingURL=runtime.d.ts.map