import vscode from 'vscode';
import * as types from './ext-types';
import { SerializedAutoClosingPair, SerializedIndentationRule, SerializedOnEnterRule, SerializedRegExp } from './model.api';
import type { IndentationRule, OnEnterRule } from '@opensumi/monaco-editor-core/esm/vs/editor/common/languages/languageConfiguration';
/**
 * Returns `true` if the parameter has type "object" and not null, an array, a regexp, a date.
 */
export declare function isObject(obj: any): boolean;
export declare function mixin(destination: any, source: any, overwrite?: boolean): any;
export declare function illegalArgument(message?: string): Error;
export declare function isLocationArray(array: any): array is types.Location[];
export declare function isDefinitionLinkArray(array: any): array is vscode.DefinitionLink[];
export declare function reviveRegExp(regExp?: SerializedRegExp): RegExp | undefined;
export declare function reviveIndentationRule(indentationRule?: SerializedIndentationRule): IndentationRule | undefined;
export declare function reviveOnEnterRule(onEnterRule: SerializedOnEnterRule): OnEnterRule;
export declare function reviveOnEnterRules(onEnterRules?: SerializedOnEnterRule[]): OnEnterRule[] | undefined;
export declare function serializeEnterRules(rules?: vscode.OnEnterRule[]): SerializedOnEnterRule[] | undefined;
export declare function serializeRegExp(regexp?: RegExp): SerializedRegExp | undefined;
export declare function serializeIndentation(indentationRules?: vscode.IndentationRule): SerializedIndentationRule | undefined;
export declare function serializeAutoClosingPairs(pairs: vscode.AutoClosingPair[] | undefined): SerializedAutoClosingPair[] | undefined;
//# sourceMappingURL=utils.d.ts.map