import * as lsp from 'vscode-languageserver';
import { AbstractProvider } from './provider';
import { Diagnostic, DiagnosticCategory } from '../compiler/types';
import { QualifiedSourceFile } from './store';
export declare function formatDiagnosticTotal(summary: DiagnosticWorkspaceSummary): string;
export interface DiagnosticWorkspaceSummary {
    diagnostics: Map<string, Diagnostic[]>;
    sourceFiles: Map<string, QualifiedSourceFile>;
    filesProcessed: number;
    issuesTotal: {
        [DiagnosticCategory.Error]: number;
        [DiagnosticCategory.Warning]: number;
        [DiagnosticCategory.Message]: number;
        [DiagnosticCategory.Hint]: number;
    };
}
export declare type DiagnosticsCallback = (a: string) => void;
export declare class DiagnosticsProvider extends AbstractProvider {
    private reporter?;
    private translateDiagnostics;
    subscribe(uri: string): void;
    checkFile(documentUri: string): void;
    provideDiagnostics(uri: string): lsp.Diagnostic[];
    checkFileRecursively(documentUri: string): DiagnosticWorkspaceSummary;
}
