import { Diagnostic } from '@arcgis/arcade-languageservice';
import { Uri, Position, editor as Editor } from 'monaco-editor';
import { languages } from '../monaco-importer';
import { IArcadeWorkerAccessor } from './types';
import { ArcadeLanguageServiceDefaults } from './arcade-defaults';
export declare class DiagnosticsAdapter {
    private _languageId;
    private _worker;
    private _disposables;
    private _modelListeners;
    private _diagnosticsService;
    private _defaults;
    constructor(_languageId: string, _worker: IArcadeWorkerAccessor, { defaults, diagnosticsService, }: {
        defaults: ArcadeLanguageServiceDefaults;
        diagnosticsService: {
            fireDiagnosticsChange: (uri: Uri, diagnostics: Diagnostic[]) => void;
        };
    });
    dispose(): void;
    private _doValidate;
}
export declare function toCompletionItemKind(kind: number | undefined): languages.CompletionItemKind;
export declare class CompletionProvider implements languages.CompletionItemProvider {
    private _worker;
    private _defaults;
    constructor(_worker: IArcadeWorkerAccessor, _defaults: ArcadeLanguageServiceDefaults);
    triggerCharacters: string[];
    provideCompletionItems(model: Editor.ITextModel, position: Position): Promise<languages.CompletionList | undefined>;
}
export declare class FormattingProvider implements languages.DocumentFormattingEditProvider {
    private _worker;
    private _defaults;
    constructor(_worker: IArcadeWorkerAccessor, _defaults: ArcadeLanguageServiceDefaults);
    provideDocumentFormattingEdits(model: Editor.ITextModel): Promise<languages.TextEdit[]>;
}
