import { RpcServer } from '@theia/core'; import { ContainerOutputProvider } from './container-output-provider'; import type { ContainerInspectInfo } from 'dockerode'; export declare const RemoteContainerConnectionProviderPath = "/remote/container"; export declare const RemoteContainerConnectionProvider: unique symbol; export interface ContainerConnectionOptions { nodeDownloadTemplate?: string; lastContainerInfo?: LastContainerInfo; devcontainerFile: string; workspacePath?: string; } export interface LastContainerInfo { id: string; lastUsed: number; } export interface ContainerConnectionResult { port: string; workspacePath: string; containerId: string; } export interface DevContainerFile { name: string; path: string; } export interface RunningContainerInfo { id: string; name: string; image: string; status: string; created: number; } export interface WorkspaceCandidate { path: string; /** Describes where this candidate came from */ source: 'working-dir' | 'bind-mount' | 'devcontainer-label' | 'fallback'; } export interface AttachContainerOptions { containerId: string; workspacePath: string; nodeDownloadTemplate?: string; devcontainerFile?: string; } export interface AttachContainerArgs { containerId: string; scanForDevJson: boolean; } export interface RemoteContainerConnectionProvider extends RpcServer { connectToContainer(options: ContainerConnectionOptions): Promise; getDevContainerFiles(workspacePath: string): Promise; getCurrentContainerInfo(port: number): Promise; listRunningContainers(): Promise; getWorkspaceCandidates(containerId: string): Promise; scanForDevContainerConfig(containerId: string, workspacePath: string): Promise; getAttachContainerArgs(): Promise; attachToContainer(options: AttachContainerOptions): Promise; removeContainer(containerId: string): Promise; } //# sourceMappingURL=remote-container-connection-provider.d.ts.map