/**
 * VS Code Diagnostic Formatter
 * Formats scan results as LSP diagnostic format for VS Code integration
 */
import type { Vulnerability } from '../types';
/**
 * LSP Diagnostic Severity
 * https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticSeverity
 */
export declare enum DiagnosticSeverity {
    Error = 1,
    Warning = 2,
    Information = 3,
    Hint = 4
}
/**
 * LSP Position (0-indexed)
 */
export interface Position {
    line: number;
    character: number;
}
/**
 * LSP Range
 */
export interface Range {
    start: Position;
    end: Position;
}
/**
 * LSP Diagnostic
 * https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic
 */
export interface Diagnostic {
    range: Range;
    severity: DiagnosticSeverity;
    code?: string | number;
    source: string;
    message: string;
    relatedInformation?: DiagnosticRelatedInformation[];
    tags?: DiagnosticTag[];
    data?: unknown;
}
/**
 * LSP Diagnostic Related Information
 */
export interface DiagnosticRelatedInformation {
    location: {
        uri: string;
        range: Range;
    };
    message: string;
}
/**
 * LSP Diagnostic Tag
 */
export declare enum DiagnosticTag {
    Unnecessary = 1,
    Deprecated = 2
}
/**
 * Format vulnerability as LSP diagnostic
 */
export declare function formatDiagnostic(finding: Vulnerability, fileUri?: string): Diagnostic;
/**
 * Group diagnostics by file URI
 */
export interface DiagnosticsByFile {
    uri: string;
    diagnostics: Diagnostic[];
}
/**
 * Format vulnerabilities as diagnostics grouped by file
 */
export declare function formatDiagnosticsByFile(vulnerabilities: Vulnerability[], baseUri?: string): DiagnosticsByFile[];
/**
 * VS Code Code Action (quick fix) format
 */
export interface CodeAction {
    title: string;
    kind: string;
    diagnostics: Diagnostic[];
    edit?: {
        changes: Record<string, TextEdit[]>;
    };
    isPreferred?: boolean;
}
/**
 * Text Edit for Code Action
 */
export interface TextEdit {
    range: Range;
    newText: string;
}
/**
 * Generate code action for a finding (if fix is available)
 */
export declare function generateCodeAction(finding: Vulnerability, fileUri: string): CodeAction | null;
/**
 * Format for VS Code Problems panel (simplified text format)
 */
export declare function formatForProblemsPanel(vulnerabilities: Vulnerability[]): string;
//# sourceMappingURL=vscode-diagnostic.d.ts.map