import type { TypedMapping } from '@aws-cdk/cloudformation-diff';
import type * as cxapi from '@aws-cdk/cx-api';
export interface CloudFormationTemplate {
    Resources?: {
        [logicalId: string]: {
            Type: string;
            Properties?: any;
            Metadata?: Record<string, any>;
        };
    };
}
export interface CloudFormationStack {
    readonly environment: cxapi.Environment;
    readonly stackName: string;
    readonly template: CloudFormationTemplate;
}
/**
 * This class mirrors the `ResourceLocation` interface from CloudFormation,
 * but is richer, since it has a reference to the stack object, rather than
 * merely the stack name.
 */
export declare class ResourceLocation {
    readonly stack: CloudFormationStack;
    readonly logicalResourceId: string;
    constructor(stack: CloudFormationStack, logicalResourceId: string);
    toPath(): string;
    getType(): string;
    equalTo(other: ResourceLocation): boolean;
}
/**
 * A mapping between a source and a destination location.
 */
export declare class ResourceMapping {
    readonly source: ResourceLocation;
    readonly destination: ResourceLocation;
    constructor(source: ResourceLocation, destination: ResourceLocation);
    toTypedMapping(): TypedMapping;
}
