import { AttachContainerArgs, AttachContainerOptions, ContainerConnectionOptions, ContainerConnectionResult, DevContainerFile, RemoteContainerConnectionProvider, RunningContainerInfo, WorkspaceCandidate } from '../electron-common/remote-container-connection-provider'; import { RemoteConnectionService } from '@theia/remote/lib/electron-node/remote-connection-service'; import { RemoteSetupService } from '@theia/remote/lib/electron-node/setup/remote-setup-service'; import { RemoteProxyServerProvider } from '@theia/remote/lib/electron-node/remote-proxy-server-provider'; import { RemoteStatusReport } from '@theia/remote/lib/electron-node/remote-types'; import { RpcServer, ILogger, MessageService } from '@theia/core'; import * as Docker from 'dockerode'; import { DevContainerFileService } from './dev-container-file-service'; import { DockerContainerService } from './docker-container-service'; import { ContainerOutputProvider } from '../electron-common/container-output-provider'; import { DevContainerCliContribution } from './dev-container-cli-contribution'; import { RemoteDockerContainerConnection } from './remote-docker-container-connection'; export { RemoteDockerContainerConnection, RemoteContainerConnectionOptions } from './remote-docker-container-connection'; import { DevContainerConfiguration } from './devcontainer-file'; export declare class DevContainerConnectionProvider implements RemoteContainerConnectionProvider, RpcServer { protected readonly remoteConnectionService: RemoteConnectionService; protected readonly remoteSetup: RemoteSetupService; protected readonly serverProvider: RemoteProxyServerProvider; protected readonly containerService: DockerContainerService; protected readonly devContainerFileService: DevContainerFileService; protected readonly cliContribution: DevContainerCliContribution; protected readonly logger: ILogger; protected readonly messageService: MessageService; protected outputProvider: ContainerOutputProvider | undefined; setClient(client: ContainerOutputProvider): void; createDockerConnection(): Promise; listRunningContainers(docker?: Docker): Promise; getWorkspaceCandidates(containerId: string, docker?: Docker): Promise; scanForDevContainerConfig(containerId: string, workspacePath: string, docker?: Docker): Promise; connectToContainer(options: ContainerConnectionOptions): Promise; getDevContainerFiles(workspacePath: string): Promise; getAttachContainerArgs(): Promise; attachToContainer(options: AttachContainerOptions): Promise; getCurrentContainerInfo(port: number): Promise; removeContainer(containerId: string): Promise; protected doRemoveContainer(containerId: string, docker?: Docker): Promise; /** * Creates a remote connection, runs setup (injecting the Theia backend into the container), * registers the connection, and starts a local proxy server. * * @returns the local proxy port and the remote connection */ protected setupRemoteConnection(container: Docker.Container, docker: Docker, config: DevContainerConfiguration, nodeDownloadTemplate: string | undefined, report: RemoteStatusReport): Promise<{ localPort: number; remote: RemoteDockerContainerConnection; }>; dispose(): void; } //# sourceMappingURL=remote-container-connection-provider.d.ts.map