/** ******************************************************************************
 * Copyright (C) 2018 Red Hat, Inc. and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { Emitter, Event } from '@opensumi/ide-core-common';
import { IMainThreadLanguages } from '../../../../common/vscode';
import { Uri as URI } from '../../../../common/vscode/ext-types';
import type vscode from 'vscode';
export declare class DiagnosticCollection implements vscode.DiagnosticCollection {
    private static DIAGNOSTICS_PRIORITY;
    private collectionName;
    private diagnosticsLimitPerResource;
    private proxy;
    private onDidChangeDiagnosticsEmitter;
    private diagnostics;
    private isDisposed;
    private onDisposeCallback;
    constructor(name: string, maxCountPerFile: number, proxy: IMainThreadLanguages, onDidChangeDiagnosticsEmitter: Emitter<vscode.DiagnosticChangeEvent>);
    get name(): string;
    set(uri: vscode.Uri, diagnostics: vscode.Diagnostic[] | undefined): void;
    set(entries: [vscode.Uri, vscode.Diagnostic[] | undefined][]): void;
    private setDiagnosticsForUri;
    private setDiagnostics;
    delete(uri: URI): void;
    clear(): void;
    forEach(callback: (uri: URI, diagnostics: vscode.Diagnostic[], collection: vscode.DiagnosticCollection) => any, thisArg?: any): void;
    [Symbol.iterator](): IterableIterator<[uri: vscode.Uri, diagnostics: readonly vscode.Diagnostic[]]>;
    get(uri: URI): vscode.Diagnostic[] | undefined;
    has(uri: URI): boolean;
    dispose(): void;
    setOnDisposeCallback(onDisposeCallback: (() => void) | undefined): void;
    private ensureNotDisposed;
    private getAllResourcesUris;
    private getDiagnosticsByUri;
    private fireDiagnosticChangeEvent;
    private toUrisArray;
    private sendChangesToEditor;
}
export declare class Diagnostics {
    static MAX_DIAGNOSTICS_PER_FILE: number;
    private static GENERATED_DIAGNOSTIC_COLLECTION_NAME_PREFIX;
    private proxy;
    private diagnosticCollections;
    private nextId;
    private diagnosticsChangedEmitter;
    readonly onDidChangeDiagnostics: Event<vscode.DiagnosticChangeEvent>;
    constructor(proxy: IMainThreadLanguages);
    getDiagnostics(resource: vscode.Uri): vscode.Diagnostic[];
    getDiagnostics(): [vscode.Uri, vscode.Diagnostic[]][];
    createDiagnosticCollection(name?: string): vscode.DiagnosticCollection;
    private getNextId;
    private getAllDiagnisticsForResource;
    private getAllDiagnostics;
}
//# sourceMappingURL=diagnostics.d.ts.map