import type { ConstructLevel } from '../classifyConstructLevel/classifyConstructLevel'; import type { RuleContext, Severity } from '../../types/analysis.types'; /** * Pull a resource's construct level from the rule context map. Returns * `undefined` when no metadata was captured (older CDK / synth) or when * the rule didn't get a context. */ export declare const getConstructLevel: (ruleContext: RuleContext | undefined, logicalId: string) => ConstructLevel | undefined; /** * Pull a resource's FQN — useful when remediation needs to mention the * specific construct type the user is working with. */ export declare const getConstructFqn: (ruleContext: RuleContext | undefined, logicalId: string) => string | undefined; /** * True for resources owned by an `@aws-solutions-constructs` pattern or a * well-known third-party L3 library (cdk-nag, cdk-monitoring-constructs, * etc.). These resources are usually configured by the pattern itself — * the user fixing them at the CFN level typically means escape-hatching. */ export declare const isOwnedByL3Pattern: (level: ConstructLevel | undefined) => boolean; /** * True for raw L1 (`Cfn*`) constructs. The user has explicitly opted out * of L2 defaults, so findings here are high-confidence intentional choices * (or oversights they didn't realise existed). */ export declare const isL1Construct: (level: ConstructLevel | undefined) => boolean; /** * Drop a finding's severity by one level (CRITICAL→HIGH, HIGH→MEDIUM, * MEDIUM→LOW). LOW stays at LOW. Used to soften findings on resources * the user can't easily fix (typically L3-pattern-owned). */ export declare const downgradeSeverity: (severity: Severity) => Severity; /** * Append a pattern-aware sentence to a remediation when the resource is * owned by an L3 pattern. Idempotent for non-L3 resources. */ export declare const withL3PatternHint: (remediation: string, level: ConstructLevel | undefined, patternProps?: string) => string; /** * Type guard / lookup for a CDK feature flag in the user's cdk.json * context. Accepts both `true` and `"true"` (the CLI -c form). */ export declare const isCdkFlagEnabled: (ruleContext: RuleContext | undefined, flagName: string) => boolean;