import type { AssemblyManifest } from '@aws-cdk/cloud-assembly-schema';
import type { ResourceLocation } from './cloudformation';
export interface ExcludeList {
    isExcluded(location: ResourceLocation): boolean;
}
export declare class ManifestExcludeList implements ExcludeList {
    private readonly excludedLocations;
    constructor(manifest: AssemblyManifest);
    private getExcludedLocations;
    isExcluded(location: ResourceLocation): boolean;
}
export declare class InMemoryExcludeList implements ExcludeList {
    private readonly excludedLocations;
    private readonly excludedPaths;
    constructor(items: string[]);
    isExcluded(location: ResourceLocation): boolean;
}
export declare class UnionExcludeList implements ExcludeList {
    private readonly excludeLists;
    constructor(excludeLists: ExcludeList[]);
    isExcluded(location: ResourceLocation): boolean;
}
export declare class NeverExclude implements ExcludeList {
    isExcluded(_location: ResourceLocation): boolean;
}
export declare class AlwaysExclude implements ExcludeList {
    isExcluded(_location: ResourceLocation): boolean;
}
export declare function fromManifestAndExclusionList(manifest: AssemblyManifest, exclude?: string[]): ExcludeList;
