import '../../../private/dispose-polyfill';
import type { IoHelper } from '../../shared-private';
import { BaseStackAssembly } from '../stack-assembly';
import { StackCollection } from '../stack-collection';
import type { StackSelector } from '../stack-selector';
import type { IReadableCloudAssembly } from '../types';
/**
 * A single Cloud Assembly wrapped to provide additional stack operations.
 */
export declare class StackAssembly extends BaseStackAssembly implements IReadableCloudAssembly {
    private readonly _asm;
    constructor(_asm: IReadableCloudAssembly, ioHelper: IoHelper);
    get cloudAssembly(): import("@aws-cdk/cx-api").CloudAssembly;
    _unlock(): Promise<void>;
    dispose(): Promise<void>;
    [Symbol.asyncDispose](): Promise<void>;
    /**
     * Improved stack selection interface with a single selector
     * @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`
     * @throws when individual selection strategies are not satisfied
     */
    selectStacksV2(selector: StackSelector): Promise<StackCollection>;
    /**
     * Select all stacks.
     *
     * This method never throws and can safely be used as a basis for other calculations.
     *
     * @returns a `StackCollection` of all stacks
     */
    selectAllStacks(): StackCollection;
    /**
     * Select all stacks that have the validateOnSynth flag et.
     *
     * @returns a `StackCollection` of all stacks that needs to be validated
     */
    selectStacksForValidation(): StackCollection;
}
