import type { IssueGroup } from '../../types/analysis.types'; import { type AiSkippedReason, type ScanReport, type ScanSuppressionContext } from '../../types/scanReport.types'; /** * Uploaded reports must not leak machine-identifying absolute paths * (/Users//... or C:\\Users\\\\...). Source locations come from * the CDK manifest trace as absolute paths; relativize them against the * scan's working directory. Paths outside cwd (monorepo parents, global * caches) fall back to their last three segments - enough to locate the * file, nothing about the machine. */ export declare const sanitizeSourcePath: (filePath: string) => string; export interface BuildScanReportInput { scanId: string; cliVersion: string; recommendationMaps: Record; /** Every resource analysed in the run, composite-keyed `${stackName}:${resourceId}`. */ scannedResourceIds: Set; scanStartedAt: Date; scanCompletedAt: Date; aiAnalysis: { ran: boolean; skippedReason?: AiSkippedReason; }; /** Suppression configuration active for this run - see ScanSuppressionContext. */ suppressions?: ScanSuppressionContext; } export declare const buildScanReport: (input: BuildScanReportInput) => ScanReport;