import type { CloudFormationStackArtifact } from '@aws-cdk/cloud-assembly-api';
import type { DescribeChangeSetCommandOutput } from '@aws-sdk/client-cloudformation';
import { type Template } from './stack-helpers';
import type { SDK } from '../aws-auth/private';
export interface RootTemplateWithNestedStacks {
    readonly deployedRootTemplate: Template;
    readonly nestedStacks: {
        [nestedStackLogicalId: string]: NestedStackTemplates;
    };
}
/**
 * Reads the currently deployed template and all of its nested stack templates from CloudFormation.
 */
export declare function loadCurrentTemplateWithNestedStacks(rootStackArtifact: CloudFormationStackArtifact, sdk: SDK, retrieveProcessedTemplate?: boolean): Promise<RootTemplateWithNestedStacks>;
/**
 * Returns the currently deployed template from CloudFormation that corresponds to `stackArtifact`.
 */
export declare function loadCurrentTemplate(stackArtifact: CloudFormationStackArtifact, sdk: SDK, retrieveProcessedTemplate?: boolean): Promise<Template>;
export interface NestedStackTemplates {
    readonly physicalName: string | undefined;
    readonly deployedTemplate: Template;
    readonly generatedTemplate: Template;
    readonly nestedStackTemplates: {
        [nestedStackLogicalId: string]: NestedStackTemplates;
    };
    /**
     * The changeset for this nested stack, if available.
     * Populated when the root changeset was created with `IncludeNestedStacks`.
     */
    readonly changeSet?: DescribeChangeSetCommandOutput;
}
//# sourceMappingURL=nested-stack-helpers.d.ts.map