import * as cdk from "../../../core";
import { StackDeployment } from './stack-deployment';
import { StackSteps, Step } from './step';
/**
 * (experimental) Properties for a `StageDeployment`.
 *
 * @experimental
 */
export interface StageDeploymentProps {
    /**
     * (experimental) Stage name to use in the pipeline.
     *
     * @default - Use Stage's construct ID
     * @experimental
     */
    readonly stageName?: string;
    /**
     * (experimental) Additional steps to run before any of the stacks in the stage.
     *
     * @default - No additional steps
     * @experimental
     */
    readonly pre?: Step[];
    /**
     * (experimental) Additional steps to run after all of the stacks in the stage.
     *
     * @default - No additional steps
     * @experimental
     */
    readonly post?: Step[];
    /**
     * (experimental) Instructions for additional steps that are run at the stack level.
     *
     * @default - No additional instructions
     * @experimental
     */
    readonly stackSteps?: StackSteps[];
}
/**
 * (experimental) Deployment of a single `Stage`.
 *
 * A `Stage` consists of one or more `Stacks`, which will be
 * deployed in dependency order.
 *
 * @experimental
 */
export declare class StageDeployment {
    /** The stacks deployed in this stage */
    readonly stacks: StackDeployment[];
    /**
     * (experimental) Create a new `StageDeployment` from a `Stage`.
     *
     * Synthesizes the target stage, and deployes the stacks found inside
     * in dependency order.
     *
     * @experimental
     */
    static fromStage(stage: cdk.Stage, props?: StageDeploymentProps): StageDeployment;
    /**
     * (experimental) The display name of this stage.
     *
     * @experimental
     */
    readonly stageName: string;
    /**
     * (experimental) Additional steps that are run before any of the stacks in the stage.
     *
     * @experimental
     */
    readonly pre: Step[];
    /**
     * (experimental) Additional steps that are run after all of the stacks in the stage.
     *
     * @experimental
     */
    readonly post: Step[];
    /**
     * (experimental) Instructions for additional steps that are run at stack level.
     *
     * @experimental
     */
    readonly stackSteps: StackSteps[];
    private constructor();
    /**
     * (experimental) Add an additional step to run before any of the stacks in this stage.
     *
     * @experimental
     */
    addPre(...steps: Step[]): void;
    /**
     * (experimental) Add an additional step to run after all of the stacks in this stage.
     *
     * @experimental
     */
    addPost(...steps: Step[]): void;
}
