import { Terraform, TerraformPlan, TerraformOutput, AbstractTerraformPlan } from "./terraform";
import { SynthesizedStack } from "../synth-stack";
export declare class TerraformCliPlan extends AbstractTerraformPlan implements TerraformPlan {
    readonly planFile: string;
    readonly plan: {
        [key: string]: any;
    };
    constructor(planFile: string, plan: {
        [key: string]: any;
    });
}
export declare class TerraformCli implements Terraform {
    private readonly abortSignal;
    readonly stack: SynthesizedStack;
    readonly workdir: string;
    private readonly onStdout;
    private readonly onStderr;
    constructor(abortSignal: AbortSignal, stack: SynthesizedStack, createTerraformLogHandler?: (_phase: string) => (_stdout: string, _isErr?: boolean) => void);
    init(): Promise<void>;
    plan(destroy?: boolean, refreshOnly?: boolean, parallelism?: number): Promise<TerraformPlan>;
    deploy(planFile: string, refreshOnly?: boolean, parallelism?: number, extraOptions?: string[]): Promise<void>;
    destroy(parallelism?: number): Promise<void>;
    version(): Promise<string>;
    output(): Promise<{
        [key: string]: TerraformOutput;
    }>;
    setUserAgent(): Promise<void>;
    abort(): Promise<void>;
}
