import type { IConstruct } from 'constructs'; import type { IPolicyValidationPlugin, IPolicyValidationContext } from '../validation'; import type { NamedValidationPluginReport } from '../validation/private/report'; import type { PolicyValidationPluginReport } from '../validation/report'; /** * Wraps the annotation collection logic as an IPolicyValidationPlugin * so it can be run through the same unified plugin loop. * * Because the released version of this logic had a version where this plugin * was called 'Construct Annotations', and the CLI looked for the report issued * by this plugin by name, we need to keep the name stable for backwards * compatibility. * * However, the display title and acknowledgement title of annotations issued * by this plugin is now `Annotation::`, *unless* the annotation ID already * has a prefix in which case the prefix is preserved. */ export declare class AnnotationPlugin implements IPolicyValidationPlugin { private readonly report; static RULE_PREFIX: string; static NAME: string; readonly name: string; constructor(report: NamedValidationPluginReport); validate(_context: IPolicyValidationContext): PolicyValidationPluginReport; } /** * Collect annotation metadata (warnings and errors) from the construct tree * and convert them into a NamedValidationPluginReport that can be merged * into the same report pipeline as plugin violations. */ export declare function collectAnnotationReport(root: IConstruct): IPolicyValidationPlugin | undefined;