import { OpenerService, WidgetOpenMode, ApplicationShell } from '@theia/core/lib/browser';
import { EditorWidget, EditorOpenerOptions, EditorManager } from '@theia/editor/lib/browser';
import { MonacoToProtocolConverter } from './monaco-to-protocol-converter';
import { IResourceEditorInput, ITextResourceEditorInput } from '@theia/monaco-editor-core/esm/vs/platform/editor/common/editor';
import { StandaloneCodeEditorService } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditorService';
import { ICodeEditor } from '@theia/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
import { IContextKeyService } from '@theia/monaco-editor-core/esm/vs/platform/contextkey/common/contextkey';
import { IThemeService } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
import { ContributionProvider, PreferenceService } from '@theia/core';
export declare const VSCodeContextKeyService: unique symbol;
export declare const VSCodeThemeService: unique symbol;
export declare const MonacoEditorServiceFactory: unique symbol;
export type MonacoEditorServiceFactoryType = (contextKeyService: IContextKeyService, themeService: IThemeService) => MonacoEditorService;
/**
 * contribution provider to extend the active editor handling to other editor types than just standalone editor widgets.
 */
export declare const ActiveMonacoEditorContribution: unique symbol;
export interface ActiveMonacoEditorContribution {
    getActiveEditor(): ICodeEditor | undefined;
}
export declare class MonacoEditorService extends StandaloneCodeEditorService {
    static readonly ENABLE_PREVIEW_PREFERENCE: string;
    protected readonly openerService: OpenerService;
    protected readonly m2p: MonacoToProtocolConverter;
    protected readonly shell: ApplicationShell;
    protected readonly editors: EditorManager;
    protected readonly preferencesService: PreferenceService;
    protected readonly activeMonacoEditorContribution: ContributionProvider<ActiveMonacoEditorContribution>;
    constructor(contextKeyService: IContextKeyService, themeService: IThemeService);
    /**
     * Monaco active editor is either focused or last focused editor.
     */
    getActiveCodeEditor(): ICodeEditor | null;
    openCodeEditor(input: IResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise<ICodeEditor | null>;
    protected findEditorWidgetByUri(widget: object | undefined, uriAsString: string): Promise<EditorWidget | undefined>;
    protected createEditorOpenerOptions(input: IResourceEditorInput | ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): EditorOpenerOptions;
    protected getSelection(input: IResourceEditorInput | ITextResourceEditorInput): EditorOpenerOptions['selection'];
    protected getEditorOpenMode(input: IResourceEditorInput): WidgetOpenMode;
    protected getWidgetOptions(source: ICodeEditor | null, sideBySide?: boolean): ApplicationShell.WidgetOptions | undefined;
}
//# sourceMappingURL=monaco-editor-service.d.ts.map