import Docker from 'dockerode';
export declare const DOCKER_CONTAINER_LABEL = "tech.httptoolkit.docker.proxy";
/**
 * Get the hostname that resolves to the host OS (i.e. generally: where HTTP Toolkit is running)
 * from inside containers.
 *
 * In Docker for Windows & Mac, host.docker.internal is supported automatically:
 * https://docs.docker.com/docker-for-windows/networking/#use-cases-and-workarounds
 * https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds
 *
 * On Linux this is _not_ supported, and we need to be more clever.
 */
export declare function getDockerHostAddress(platform: typeof process.platform, containerMetadata?: Docker.ContainerInspectInfo): string;
export declare function isImageAvailable(docker: Docker, name: string): Promise<boolean>;
export declare function isInterceptedContainer(container: Docker.ContainerInspectInfo, port: string | number): boolean;
/**
 * Takes the config for a container, and returns the config to create the
 * same container, but fully intercepted.
 *
 * To hook the creation of any container, we need to get the full config of
 * the container (to make sure we get *all* env vars, for example) and then
 * combine that with the inter
 */
export declare function transformContainerCreationConfig(containerConfig: Docker.ContainerCreateOptions, baseImageConfig: Docker.ImageInspectInfo | undefined, { proxyPort, certContent }: {
    proxyPort: number;
    certContent: string;
}): Promise<Docker.ContainerCreateOptions>;
export declare function restartAndInjectContainer(docker: Docker, containerId: string, { proxyPort, certContent }: {
    proxyPort: number;
    certContent: string;
}): Promise<void>;
