export interface Environment {
    readonly type: string;
    readonly cwd: string;
    execute(command: string, options?: {
        timeout?: number;
        cwd?: string;
    }): Promise<{
        output: string;
        exitCode: number;
    }>;
    cleanup(): void;
}
export interface DockerEnvOptions {
    image: string;
    cwd?: string;
    timeout?: number;
    cpu?: number;
    memory?: string;
    volumes?: string[];
    env?: Record<string, string>;
    network?: boolean;
    autoMountCwd?: boolean;
    taskId?: string;
}
export declare class DockerEnvironment implements Environment {
    readonly type = "docker";
    private _containerId;
    private _cwd;
    private _timeout;
    private _image;
    private _options;
    constructor(options: DockerEnvOptions);
    get cwd(): string;
    init(): Promise<void>;
    execute(command: string, options?: {
        timeout?: number;
        cwd?: string;
    }): Promise<{
        output: string;
        exitCode: number;
    }>;
    cleanup(): void;
}
export interface SSHEnvOptions {
    host: string;
    user: string;
    port?: number;
    keyPath?: string;
    cwd?: string;
    timeout?: number;
}
export declare class SSHEnvironment implements Environment {
    readonly type = "ssh";
    private _host;
    private _user;
    private _port;
    private _keyPath;
    private _cwd;
    private _timeout;
    private _controlPath;
    constructor(options: SSHEnvOptions);
    get cwd(): string;
    init(): Promise<void>;
    execute(command: string, options?: {
        timeout?: number;
        cwd?: string;
    }): Promise<{
        output: string;
        exitCode: number;
    }>;
    cleanup(): void;
    private _buildSSHArgs;
    private _sshExec;
    private _quoteShell;
}
export declare function createEnvironment(type: 'docker' | 'ssh' | 'local', options: any): Environment;
//# sourceMappingURL=environments.d.ts.map