import type { TypedMapping } from '@aws-cdk/cloudformation-diff';
import type * as cxapi from '@aws-cdk/cx-api';
import type { ResourceMapping as CfnResourceMapping } from '@aws-sdk/client-cloudformation';
export interface CloudFormationResource {
    Type: string;
    Properties?: any;
    Metadata?: Record<string, any>;
    DependsOn?: string | string[];
}
export interface CloudFormationTemplate {
    Resources?: {
        [logicalId: string]: CloudFormationResource;
    };
    Outputs?: Record<string, any>;
    Rules?: Record<string, any>;
    Parameters?: Record<string, any>;
}
export interface CloudFormationStack {
    readonly environment: cxapi.Environment;
    readonly stackName: string;
    readonly template: CloudFormationTemplate;
    readonly assumeRoleArn?: string;
}
/**
 * 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;
    toLocationString(): string;
    getType(): string;
    equalTo(other: ResourceLocation): boolean;
    get stackName(): string;
}
/**
 * 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;
    toCloudFormation(): CfnResourceMapping;
}
//# sourceMappingURL=cloudformation.d.ts.map