import type { AppliedMixin, CloudFormationResource, Issue } from '../../types/analysis.types'; /** * Context about the resource's relationships and purpose * This helps the AI provide more relevant recommendations */ export interface ResourceContext { /** The stack this resource belongs to */ stackName?: string; /** Resources that depend on this resource */ dependents?: string[]; /** Resources this resource depends on */ dependencies?: string[]; /** Inferred purpose based on naming, tags, or relationships */ inferredPurpose?: string; /** Whether this appears to be a production resource */ isProduction?: boolean; /** The L2 construct type if using CDK L2 constructs */ l2ConstructType?: string; /** Whether this resource is using mostly default configuration */ usesDefaults?: boolean; /** * CDK Mixins applied to this resource (from the * `aws:cdk:analytics:mixin` manifest stream). When present, the AI is * told that mixins may re-apply properties at synth — so remediations * that mutate the mixin-controlled property need to update the mixin * instead of (or in addition to) the resource props. */ appliedMixins?: AppliedMixin[]; } /** * Generate an AI analysis prompt for a CloudFormation resource * * @param resourceId - The logical ID of the resource * @param resource - The CloudFormation resource definition * @param existingFindings - Issues already found by static analysis (to avoid duplication) * @param context - Optional context about resource relationships and purpose */ export declare const generatePrompt: (resourceId: string, resource: CloudFormationResource, existingFindings?: Issue[], context?: ResourceContext) => string;