/** * The CloudFormation resource types the policy registries speak for: the * `kind` every row carries, and the vocabulary a create surface's footprint * is expressed in (`expectedRowsAtDefault`). Drawn from `AWS_RESOURCE_TYPES` * — the literals are CloudFormation's own (`AWS::S3::Bucket`), the strings * the scan stores as an asset's resource type and a webapp rule lists in its * `resourceTypes` — so a row's kind is checked against its rule by equality, * never through a mapping. A kind joins the tuple when a row needs it; a * footprint can only name a kind some row can match. */ export declare const POLICY_RESOURCE_KINDS: readonly ["AWS::S3::Bucket", "AWS::ECS::Cluster", "AWS::SNS::Topic", "AWS::KMS::Key"]; export type PolicyResourceKind = (typeof POLICY_RESOURCE_KINDS)[number]; /** * The resource kinds a workload synthesises, projected onto the registry's * vocabulary: what a plan's entries or a pattern's construct produce, as * CloudFormation types the registry has a row for. Required wherever a * consent surface lists rows — an unknown footprint is not an empty one. */ export type PolicyResourceFootprint = ReadonlySet; export declare function isPolicyResourceKind(value: unknown): value is PolicyResourceKind; /** * Projects CloudFormation resource types — a synthesised template's, a * plan's — onto the registry vocabulary, dropping every type no row speaks * for. The one projection the constructs' footprint test, the generator's * plan footprint and the create surfaces share. */ export declare function policyResourceFootprint(resourceTypes: Iterable): PolicyResourceFootprint;