import type tsp from 'typescript/lib/protocol.d.js';
import * as lsp from 'vscode-languageserver';
import { Logger } from './utils/logger.js';
import { EventTypes } from './tsp-command-types.js';
import { LspDocuments } from './document.js';
import { SupportedFeatures } from './ts-protocol.js';
declare class FileDiagnostics {
    protected readonly uri: string;
    protected readonly publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void;
    protected readonly documents: LspDocuments;
    protected readonly features: SupportedFeatures;
    private readonly diagnosticsPerKind;
    constructor(uri: string, publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments, features: SupportedFeatures);
    update(kind: EventTypes, diagnostics: tsp.Diagnostic[]): void;
    protected readonly firePublishDiagnostics: () => Promise<void>;
    getDiagnostics(): lsp.Diagnostic[];
}
export declare class DiagnosticEventQueue {
    protected readonly publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void;
    protected readonly documents: LspDocuments;
    protected readonly features: SupportedFeatures;
    protected readonly logger: Logger;
    protected readonly diagnostics: Map<string, FileDiagnostics>;
    private ignoredDiagnosticCodes;
    constructor(publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments, features: SupportedFeatures, logger: Logger);
    updateDiagnostics(kind: EventTypes, event: tsp.DiagnosticEvent): void;
    updateIgnoredDiagnosticCodes(ignoredCodes: readonly number[]): void;
    getDiagnosticsForFile(file: string): lsp.Diagnostic[];
    private isDiagnosticIgnored;
}
export {};
//# sourceMappingURL=diagnostic-queue.d.ts.map