import * as cxapi from 'aws-cdk-lib/cx-api';
export interface FindMatchingResourceOptionsCommon {
    /**
     * The Cloud Assembly to search.
     */
    readonly assembly: cxapi.CloudAssembly;
    /**
     * Patch to search for.
     */
    readonly constructPath?: string;
    /**
     * Metadata to search for.
     */
    readonly metadata?: MetadataMatch;
    /**
     * Tags to search for.
     */
    readonly tags?: TagsMatch;
}
export interface FindMatchingResourceOptions extends FindMatchingResourceOptionsCommon {
    /**
     * Match only the given resource types.
     */
    readonly types: string[];
}
/**
 * Finds matching resources.
 */
export declare function findMatchingResources(options: FindMatchingResourceOptions): MatchingResource[];
export interface MatchingResource {
    /**
     * Name of the stack containing the resource.
     */
    readonly stackName: string;
    /**
     * Logical ID of the resource.
     */
    readonly logicalResourceId: string;
    /**
     * The CloudFormation type.
     */
    readonly type: string;
    /**
     * The resource's construct path metadata.
     */
    readonly constructPath: string;
}
export declare abstract class MatchBase {
    protected readonly spec: Record<string, string | undefined>;
    constructor(spec: string[]);
}
/**
 * Match resource metadata with the given specification.
 */
export declare class MetadataMatch extends MatchBase {
    matches(resourceMetadata: Record<string, string>): boolean;
}
export interface CfnTag {
    readonly Key: string;
    readonly Value: string;
}
export declare class TagsMatch extends MatchBase {
    matches(resourceTags?: Array<CfnTag>): boolean;
}
