///
///
import { Container, ContainerInfo, NetworkInspectInfo } from 'dockerode';
import { Writable } from 'stream';
import { EmulatorBuildContext } from 'types/index.js';
interface DockerClient {
listContainers(options: {}): Promise;
listNetworks(): Promise;
createNetwork(options: {}): Promise;
buildImage(buildContext: EmulatorBuildContext, options: {}): Promise;
getContainer(containerName: string): Promise;
removeContainer(container: Container, options: {}): Promise;
run(imageName: string, cmd: string[], streams: Writable[], options: {}): Promise;
followProgress(stream: NodeJS.ReadableStream, onFinished: (err: Error | null, output: any) => void, onProgress: (info: any) => void): Promise;
}
declare class DockerClientImpl implements DockerClient {
private docker;
constructor();
listContainers(options?: {
all: true;
filters: string;
}): Promise;
listNetworks(): Promise;
createNetwork(options: {
Name: string;
Attachable: boolean;
}): Promise;
buildImage(buildContext: EmulatorBuildContext, options: {}): Promise;
getContainer(containerName: string): Promise;
removeContainer(container: Container, options: {}): Promise;
run(imageName: string, cmd: string[], streams: Writable[], options: {}): Promise;
followProgress(stream: NodeJS.ReadableStream, onFinished: (err: Error | null, output: any) => void, onProgress: (info: any) => void): Promise;
}
declare class DockerClientMock implements DockerClient {
listContainers(options?: {}): Promise;
listNetworks(): Promise;
createNetwork(options: {}): Promise;
buildImage(buildContext: EmulatorBuildContext, options: {}): Promise;
getContainer(containerId: string): Promise;
removeContainer(container: Container, options: {}): Promise;
run(imageName: string, cmd: string[], streams: Writable[], options: {}): Promise;
followProgress(stream: NodeJS.ReadableStream, onFinished: (err: Error | null, output: any) => void, onProgress: (info: any) => void): Promise;
}
export { DockerClient, DockerClientImpl, DockerClientMock };