import type { AnalysisSummary, IssueGroup } from '../../types/analysis.types'; /** * Builds the structured analysis report object used by both the JSON file * writer and stdout JSON output. */ export declare const buildAnalysisReport: (stackName: string, summary: AnalysisSummary, recommendations: Record) => { stackName: string; generatedAt: string; version: string; summary: AnalysisSummary; recommendations: { resourceId: string; logicalId: string | undefined; cdkName: string; resourceName: string | undefined; cdkPath: string; githubUrl: string | undefined; docUrl: string | undefined; constructType: string | undefined; parentPath: string | undefined; childCount: number | undefined; tags: Record | undefined; sourceLocation: { filePath: string; line: number; column: number; endLine?: number; endColumn?: number; confidence?: "high" | "medium" | "low"; method?: string; enclosingScope?: string; codeSnippet?: string; } | undefined; constructHierarchy: { id: string; type: string; fqn?: string; }[] | undefined; serviceCategory: string | undefined; dependencies: string[] | undefined; sensitiveProperties: { path: string; value: string | boolean | number | null; isDefault?: boolean; recommendation?: string; }[] | undefined; usesDefaults: boolean | undefined; l2ConstructType: string | undefined; l2ConstructId: string | undefined; createdBy: string | undefined; rootSourceLocation: { filePath: string; line: number; column: number; confidence?: "high" | "medium" | "low"; method?: string; enclosingScope?: string; codeSnippet?: string; } | undefined; searchHint: string | undefined; issues: { issue: string; recommendation: string | undefined; severity: import("../../types/analysis.types").Severity; wafPillar: import("../../types/analysis.types").WAFPillars; codeSnippet: string | undefined; locationHint: string | undefined; foundBy: "cdkNag" | "cdkInsights" | "validationReport"; sourceLocation: { filePath: string; line: number; column: number; confidence: "high" | "medium" | "low"; frames?: import("../../types/analysis.types").Frame[]; } | undefined; stackName: string | undefined; }[]; }[]; }; /** * Writes a detailed JSON report to disk matching the fields used in the * Markdown report. Returns the report object so callers can also emit it * elsewhere (e.g. stdout). */ export declare const writeAnalysisReport: (stackName: string, summary: AnalysisSummary, recommendations: Record) => { stackName: string; generatedAt: string; version: string; summary: AnalysisSummary; recommendations: { resourceId: string; logicalId: string | undefined; cdkName: string; resourceName: string | undefined; cdkPath: string; githubUrl: string | undefined; docUrl: string | undefined; constructType: string | undefined; parentPath: string | undefined; childCount: number | undefined; tags: Record | undefined; sourceLocation: { filePath: string; line: number; column: number; endLine?: number; endColumn?: number; confidence?: "high" | "medium" | "low"; method?: string; enclosingScope?: string; codeSnippet?: string; } | undefined; constructHierarchy: { id: string; type: string; fqn?: string; }[] | undefined; serviceCategory: string | undefined; dependencies: string[] | undefined; sensitiveProperties: { path: string; value: string | boolean | number | null; isDefault?: boolean; recommendation?: string; }[] | undefined; usesDefaults: boolean | undefined; l2ConstructType: string | undefined; l2ConstructId: string | undefined; createdBy: string | undefined; rootSourceLocation: { filePath: string; line: number; column: number; confidence?: "high" | "medium" | "low"; method?: string; enclosingScope?: string; codeSnippet?: string; } | undefined; searchHint: string | undefined; issues: { issue: string; recommendation: string | undefined; severity: import("../../types/analysis.types").Severity; wafPillar: import("../../types/analysis.types").WAFPillars; codeSnippet: string | undefined; locationHint: string | undefined; foundBy: "cdkNag" | "cdkInsights" | "validationReport"; sourceLocation: { filePath: string; line: number; column: number; confidence: "high" | "medium" | "low"; frames?: import("../../types/analysis.types").Frame[]; } | undefined; stackName: string | undefined; }[]; }[]; };