/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { CancellationTokenSource } from '../../../base/common/cancellation.js';
import { Emitter } from '../../../base/common/event.js';
import { KeyChord } from '../../../base/common/keyCodes.js';
import { URI } from '../../../base/common/uri.js';
import { Position } from '../core/position.js';
import { Range } from '../core/range.js';
import { Selection } from '../core/selection.js';
import { Token, TokenizationResult, TokenizationResult2 } from '../core/token.js';
import * as standaloneEnums from './standaloneEnums.js';
import { MarkdownString } from '../../../base/common/htmlContent.js';
import { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';
import { ErrorHandler, errorHandler } from '../../../base/common/errors.js';
import { AbstractLogger, ConsoleLogger } from '../../../platform/log/common/log.js';
export class KeyMod {
    static chord(firstPart, secondPart) {
        return KeyChord(firstPart, secondPart);
    }
}
KeyMod.CtrlCmd = 2048 /* CtrlCmd */;
KeyMod.Shift = 1024 /* Shift */;
KeyMod.Alt = 512 /* Alt */;
KeyMod.WinCtrl = 256 /* WinCtrl */;
export function createMonacoBaseAPI() {
    return {
        editor: undefined,
        languages: undefined,
        extra: undefined,
        CancellationTokenSource: CancellationTokenSource,
        Emitter: Emitter,
        KeyCode: standaloneEnums.KeyCode,
        KeyMod: KeyMod,
        Position: Position,
        Range: Range,
        Selection: Selection,
        Uri: URI,
        Token: Token,
        // classes
        MarkdownString: MarkdownString,
        Disposable: Disposable,
        DisposableStore: DisposableStore,
        ErrorHandler: ErrorHandler,
        AbstractLogger: AbstractLogger,
        ConsoleLogger: ConsoleLogger,
        TokenizationResult: TokenizationResult,
        TokenizationResult2: TokenizationResult2,
        // enums
        SelectionDirection: standaloneEnums.SelectionDirection,
        MarkerSeverity: standaloneEnums.MarkerSeverity,
        MarkerTag: standaloneEnums.MarkerTag,
        MarkdownStringTextNewlineStyle: standaloneEnums.MarkdownStringTextNewlineStyle,
        LogLevel: standaloneEnums.LogLevel,
        // Constants
        errorHandler
    };
}
