import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
import type { LanguageServiceDefaults, LanguageSettings } from './monaco.contribution';
import type { Schema } from './languageServiceManager/schema';
import { AugmentedWorkerAccessor } from './kustoMode';
export declare class DiagnosticsAdapter {
    private _monacoInstance;
    private _languageId;
    private _worker;
    private defaults;
    private _disposables;
    private _contentListener;
    private _configurationListener;
    private _schemaListener;
    private _cursorListener;
    private _debouncedValidations;
    constructor(_monacoInstance: typeof globalThis.monaco, _languageId: string, _worker: AugmentedWorkerAccessor, defaults: LanguageServiceDefaults, onSchemaChange: monaco.IEvent<Schema>);
    private getMonacoCodeActions;
    private getOrCreateDebouncedValidation;
    dispose(): void;
    private _doValidate;
}
export declare class CompletionAdapter implements monaco.languages.CompletionItemProvider {
    private readonly languageSettings;
    private completionCacheManager;
    constructor(workerAccessor: AugmentedWorkerAccessor, languageSettings: LanguageSettings);
    get triggerCharacters(): string[];
    provideCompletionItems(model: monaco.editor.IReadOnlyModel, position: monaco.Position, context: monaco.languages.CompletionContext, token: monaco.CancellationToken): monaco.Thenable<monaco.languages.CompletionList>;
    private formatDocLink;
}
export declare class DefinitionAdapter {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideDefinition(model: monaco.editor.IReadOnlyModel, position: monaco.Position, token: monaco.CancellationToken): monaco.Thenable<monaco.languages.Definition>;
}
export declare class ReferenceAdapter implements monaco.languages.ReferenceProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideReferences(model: monaco.editor.IReadOnlyModel, position: monaco.Position, context: monaco.languages.ReferenceContext, token: monaco.CancellationToken): monaco.Thenable<monaco.languages.Location[]>;
}
export declare class RenameAdapter implements monaco.languages.RenameProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideRenameEdits(model: monaco.editor.IReadOnlyModel, position: monaco.Position, newName: string, token: monaco.CancellationToken): monaco.Thenable<monaco.languages.WorkspaceEdit>;
}
export declare class DocumentFormatAdapter implements monaco.languages.DocumentFormattingEditProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideDocumentFormattingEdits(model: monaco.editor.IReadOnlyModel, options: monaco.languages.FormattingOptions, token: monaco.CancellationToken): monaco.languages.TextEdit[] | monaco.Thenable<monaco.languages.TextEdit[]>;
}
export declare class FormatAdapter implements monaco.languages.DocumentRangeFormattingEditProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideDocumentRangeFormattingEdits(model: monaco.editor.IReadOnlyModel, range: monaco.Range, options: monaco.languages.FormattingOptions, token: monaco.CancellationToken): monaco.languages.TextEdit[] | monaco.Thenable<monaco.languages.TextEdit[]>;
}
export declare class FoldingAdapter implements monaco.languages.FoldingRangeProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideFoldingRanges(model: monaco.editor.ITextModel, context: monaco.languages.FoldingContext, token: monaco.CancellationToken): monaco.languages.FoldingRange[] | PromiseLike<monaco.languages.FoldingRange[]>;
}
export declare class HoverAdapter implements monaco.languages.HoverProvider {
    private _worker;
    constructor(_worker: AugmentedWorkerAccessor);
    provideHover(model: monaco.editor.IReadOnlyModel, position: monaco.Position, token: monaco.CancellationToken): monaco.Thenable<monaco.languages.Hover>;
}
