import Dockerode from 'dockerode';
import Volume from './volume.js';
interface ContainerOptions {
    command?: string[];
    docker: Dockerode;
    egress?: boolean;
    env?: Record<string, string>;
    imageName: string;
    mounts?: {
        [key: string]: Volume;
    };
    pwd?: string;
}
export default class Container {
    private readonly command?;
    private containerRef?;
    private readonly docker;
    private readonly egress?;
    private readonly env?;
    private readonly imageName;
    private readonly mounts?;
    private readonly pwd?;
    constructor({ command, docker, egress, env, imageName, mounts, pwd }: ContainerOptions);
    create(): Promise<void>;
    destroy(): Promise<void>;
    getFiles(localBasePath: string, filePathMap: {
        [key: string]: string;
    }): Promise<void>;
    putFiles(srcRoot: string, srcPaths: string[], destPath: string): Promise<NodeJS.ReadWriteStream>;
    run(): Promise<number>;
    private createWritableStream;
    private getDockerEnv;
}
export {};
