import { type IAws } from '@aws-cdk/cdk-assets-lib';
import type { Environment } from '@aws-cdk/cx-api';
import type { StackDefinition } from '@aws-sdk/client-cloudformation';
import type { CloudFormationStack } from './cloudformation';
import { ResourceMapping } from './cloudformation';
import type { SdkProvider } from '../aws-auth/sdk-provider';
import type { IoHelper } from '../io/private';
export interface RefactoringContextOptions {
    environment: Environment;
    localStacks: CloudFormationStack[];
    deployedStacks: CloudFormationStack[];
    overrides?: ResourceMapping[];
    assumeRoleArn?: string;
    ignoreModifications?: boolean;
}
/**
 * Encapsulates the information for refactoring resources in a single environment.
 */
export declare class RefactoringContext {
    private readonly _mappings;
    private readonly ambiguousMoves;
    private readonly localStacks;
    private readonly assumeRoleArn?;
    readonly environment: Environment;
    constructor(props: RefactoringContextOptions);
    get ambiguousPaths(): [string[], string[]][];
    get mappings(): ResourceMapping[];
    execute(stackDefinitions: StackDefinition[], sdkProvider: SdkProvider, ioHelper: IoHelper): Promise<void>;
    private checkBootstrapVersion;
    private findRoleToAssume;
}
/**
 * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.
 *
 * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it
 * (they're nominally independent tools).
 */
export declare function replaceAwsPlaceholders<A extends {
    region?: string;
}>(object: A, aws: IAws): Promise<A>;
//# sourceMappingURL=context.d.ts.map