import type { ValidationIssue } from '../types'; export interface LSPDiagnostic { severity: 1 | 2 | 3 | 4; range: { start: LSPPosition; end: LSPPosition; }; message: string; source: string; code?: string; codeDescription?: { href: string; }; relatedInformation?: LSPRelatedInfo[]; tags?: number[]; data?: any; } export interface LSPPosition { line: number; character: number; } export interface LSPRelatedInfo { location: { uri: string; range: { start: LSPPosition; end: LSPPosition; }; }; message: string; } export interface QuickFix { title: string; kind: 'quickfix' | 'refactor' | 'source'; diagnosticCode: string; edit?: { path: string; newValue: any; }; command?: { command: string; arguments: any[]; }; } export interface CLISummary { resourceType: string; resourceId?: string; totalIssues: number; errors: number; warnings: number; information: number; isValid: boolean; issues: CLIIssue[]; } export interface CLIIssue { severity: string; path: string; code: string; message: string; fix?: string; } export declare function fhirPathToJsonPath(fhirPath: string): string; export declare class DiagnosticFormatter { private specBaseUrl; private currentSourceMap; setSpecBaseUrl(url: string): void; toLSPDiagnostics(issues: ValidationIssue[], documentUri?: string, jsonSource?: string): LSPDiagnostic[]; private issueToLSP; private pathToRange; private getSpecUrl; generateQuickFixes(issues: ValidationIssue[]): QuickFix[]; private createQuickFix; toCLISummary(resource: any, issues: ValidationIssue[]): CLISummary; private issueToCLI; formatCLISummary(summary: CLISummary): string; formatBatchReport(results: Map): string; } export declare const diagnosticFormatter: DiagnosticFormatter; //# sourceMappingURL=diagnostic-formatter.d.ts.map