import { DescribeChangeSetOutput, Parameter, ResourceMapping, ResourceToImport, Stack } from '@aws-sdk/client-cloudformation';
import { CFNResource, CFNTemplate } from './cfn-template';
import { SpinningLogger } from './spinning-logger';
import { DiscoveredResource, Gen1App } from './gen1-app';
export declare const REFACTOR_SNAPSHOT_OUTPUT_DIRECTORY = ".amplify/gen2-migration/refactor.operations";
export declare const HOLDING_STACK_NAME_SUFFIX = "-holding";
export declare const VALID_HOLDING_STACK_STATUSES: string[];
export declare const MIGRATION_PLACEHOLDER_LOGICAL_ID = "MigrationPlaceholder";
export declare const HOLDING_STACK_FORWARD_MAPPINGS_METADATA_KEY = "ForwardMappings";
export declare const MIGRATION_PLACEHOLDER_RESOURCE: CFNResource;
export declare class Cfn {
    private readonly gen1App;
    private readonly logger;
    private readonly updateStackClaims;
    constructor(gen1App: Gen1App, logger: SpinningLogger);
    isUpdateClaimed(stackName: string): boolean;
    claimUpdate(stackName: string): void;
    update(params: {
        readonly stackName: string;
        readonly parameters: Parameter[];
        readonly templateBody: CFNTemplate;
        readonly resource?: DiscoveredResource;
        readonly snapshotPrefix?: string;
    }): Promise<void>;
    refactor(resourceMappings: ResourceMapping[], resource?: DiscoveredResource, pre?: (targetTemplate: CFNTemplate) => Promise<void>): Promise<void>;
    createChangeSet(params: {
        readonly stackName: string;
        readonly parameters: Parameter[];
        readonly templateBody: CFNTemplate;
    }): Promise<DescribeChangeSetOutput | undefined>;
    executeChangeSet(params: {
        readonly changeSet: DescribeChangeSetOutput;
        readonly templateBody: CFNTemplate;
        readonly resource?: DiscoveredResource;
        readonly captureSnapshot?: boolean;
    }): Promise<void>;
    orphan(params: {
        readonly stackName: string;
        readonly logicalIds: string[];
        readonly resource: DiscoveredResource;
    }): Promise<void>;
    importResources(params: {
        readonly stackName: string;
        readonly templateAdditions: Record<string, CFNResource>;
        readonly resourcesToImport: ResourceToImport[];
        readonly resource: DiscoveredResource;
    }): Promise<void>;
    deleteChangeSet(changeSet: DescribeChangeSetOutput): Promise<void>;
    findStack(stackName: string): Promise<Stack | null>;
    describeStack(stackName: string): Promise<Stack>;
    fetchTemplate(stackName: string): Promise<CFNTemplate>;
    deleteStack(stackName: string, resource?: DiscoveredResource): Promise<void>;
    renderChangeSet(changeSet: DescribeChangeSetOutput): string;
    private uploadTemplate;
    private info;
}
//# sourceMappingURL=cfn.d.ts.map