import type { SecurityReport } from './findingsReporter'; export interface SlackBlock { type: string; text?: SlackTextObject | string; fields?: SlackTextObject[]; elements?: (SlackElement | SlackContextElement)[]; block_id?: string; accessory?: SlackElement; } interface SlackTextObject { type: 'plain_text' | 'mrkdwn'; text: string; emoji?: boolean; } interface SlackElement { type: string; text?: SlackTextObject | string; url?: string; action_id?: string; } interface SlackContextElement { type: 'mrkdwn' | 'plain_text' | 'image'; text?: string; image_url?: string; alt_text?: string; } export interface SarifLog { $schema: string; version: '2.1.0'; runs: SarifRun[]; } interface SarifRun { tool: SarifTool; results: SarifResult[]; invocations?: SarifInvocation[]; } interface SarifTool { driver: SarifToolComponent; } interface SarifToolComponent { name: string; version: string; informationUri?: string; rules: SarifReportingDescriptor[]; } interface SarifReportingDescriptor { id: string; name: string; shortDescription: { text: string; }; fullDescription?: { text: string; }; helpUri?: string; defaultConfiguration?: { level: 'error' | 'warning' | 'note' | 'none'; }; properties?: Record; } interface SarifResult { ruleId: string; ruleIndex?: number; level: 'error' | 'warning' | 'note' | 'none'; message: { text: string; }; locations?: SarifLocation[]; relatedLocations?: SarifLocation[]; fixes?: SarifFix[]; properties?: Record; } interface SarifLocation { physicalLocation?: { artifactLocation?: { uri: string; }; region?: { startLine?: number; startColumn?: number; }; }; logicalLocations?: Array<{ name: string; kind?: string; fullyQualifiedName?: string; }>; message?: { text: string; }; } interface SarifFix { description: { text: string; }; artifactChanges?: Array<{ artifactLocation: { uri: string; }; replacements?: Array<{ deletedRegion: { startLine: number; }; insertedContent: { text: string; }; }>; }>; } interface SarifInvocation { executionSuccessful: boolean; startTimeUtc?: string; endTimeUtc?: string; } export interface MermaidOptions { direction?: 'LR' | 'TB' | 'RL' | 'BT'; showTaintedPaths?: boolean; includeAllNodes?: boolean; } export declare function formatAsHtml(report: SecurityReport, mermaidDiagram?: string): string; export declare function formatAsSlackBlocks(report: SecurityReport): SlackBlock[]; export declare function formatAsSarif(report: SecurityReport): SarifLog; export declare function generateMermaidDiagram(report: SecurityReport, options?: MermaidOptions): string; export {};