import { __esmMin, __export } from "../../../../_virtual/rolldown_runtime.js";
var main_exports = /* @__PURE__ */ __export({
	AnnotatedTextEdit: () => AnnotatedTextEdit,
	ChangeAnnotation: () => ChangeAnnotation,
	ChangeAnnotationIdentifier: () => ChangeAnnotationIdentifier,
	CodeAction: () => CodeAction,
	CodeActionContext: () => CodeActionContext,
	CodeActionKind: () => CodeActionKind,
	CodeActionTriggerKind: () => CodeActionTriggerKind,
	CodeDescription: () => CodeDescription,
	CodeLens: () => CodeLens,
	Color: () => Color,
	ColorInformation: () => ColorInformation,
	ColorPresentation: () => ColorPresentation,
	Command: () => Command,
	CompletionItem: () => CompletionItem,
	CompletionItemKind: () => CompletionItemKind,
	CompletionItemLabelDetails: () => CompletionItemLabelDetails,
	CompletionItemTag: () => CompletionItemTag,
	CompletionList: () => CompletionList,
	CreateFile: () => CreateFile,
	DeleteFile: () => DeleteFile,
	Diagnostic: () => Diagnostic,
	DiagnosticRelatedInformation: () => DiagnosticRelatedInformation,
	DiagnosticSeverity: () => DiagnosticSeverity,
	DiagnosticTag: () => DiagnosticTag,
	DocumentHighlight: () => DocumentHighlight,
	DocumentHighlightKind: () => DocumentHighlightKind,
	DocumentLink: () => DocumentLink,
	DocumentSymbol: () => DocumentSymbol,
	DocumentUri: () => DocumentUri,
	EOL: () => EOL,
	FoldingRange: () => FoldingRange,
	FoldingRangeKind: () => FoldingRangeKind,
	FormattingOptions: () => FormattingOptions,
	Hover: () => Hover,
	InlayHint: () => InlayHint,
	InlayHintKind: () => InlayHintKind,
	InlayHintLabelPart: () => InlayHintLabelPart,
	InlineCompletionContext: () => InlineCompletionContext,
	InlineCompletionItem: () => InlineCompletionItem,
	InlineCompletionList: () => InlineCompletionList,
	InlineCompletionTriggerKind: () => InlineCompletionTriggerKind,
	InlineValueContext: () => InlineValueContext,
	InlineValueEvaluatableExpression: () => InlineValueEvaluatableExpression,
	InlineValueText: () => InlineValueText,
	InlineValueVariableLookup: () => InlineValueVariableLookup,
	InsertReplaceEdit: () => InsertReplaceEdit,
	InsertTextFormat: () => InsertTextFormat,
	InsertTextMode: () => InsertTextMode,
	Location: () => Location,
	LocationLink: () => LocationLink,
	MarkedString: () => MarkedString,
	MarkupContent: () => MarkupContent,
	MarkupKind: () => MarkupKind,
	OptionalVersionedTextDocumentIdentifier: () => OptionalVersionedTextDocumentIdentifier,
	ParameterInformation: () => ParameterInformation,
	Position: () => Position,
	Range: () => Range,
	RenameFile: () => RenameFile,
	SelectedCompletionInfo: () => SelectedCompletionInfo,
	SelectionRange: () => SelectionRange,
	SemanticTokenModifiers: () => SemanticTokenModifiers,
	SemanticTokenTypes: () => SemanticTokenTypes,
	SemanticTokens: () => SemanticTokens,
	SignatureInformation: () => SignatureInformation,
	StringValue: () => StringValue,
	SymbolInformation: () => SymbolInformation,
	SymbolKind: () => SymbolKind,
	SymbolTag: () => SymbolTag,
	TextDocument: () => TextDocument,
	TextDocumentEdit: () => TextDocumentEdit,
	TextDocumentIdentifier: () => TextDocumentIdentifier,
	TextDocumentItem: () => TextDocumentItem,
	TextEdit: () => TextEdit,
	URI: () => URI,
	VersionedTextDocumentIdentifier: () => VersionedTextDocumentIdentifier,
	WorkspaceChange: () => WorkspaceChange,
	WorkspaceEdit: () => WorkspaceEdit,
	WorkspaceFolder: () => WorkspaceFolder,
	WorkspaceSymbol: () => WorkspaceSymbol,
	integer: () => integer,
	uinteger: () => uinteger
}, 1), DocumentUri, URI, integer, uinteger, Position, Range, Location, LocationLink, Color, ColorInformation, ColorPresentation, FoldingRangeKind, FoldingRange, DiagnosticRelatedInformation, DiagnosticSeverity, DiagnosticTag, CodeDescription, Diagnostic, Command, TextEdit, ChangeAnnotation, ChangeAnnotationIdentifier, AnnotatedTextEdit, TextDocumentEdit, CreateFile, RenameFile, DeleteFile, WorkspaceEdit, TextEditChangeImpl, ChangeAnnotations, WorkspaceChange, TextDocumentIdentifier, VersionedTextDocumentIdentifier, OptionalVersionedTextDocumentIdentifier, TextDocumentItem, MarkupKind, MarkupContent, CompletionItemKind, InsertTextFormat, CompletionItemTag, InsertReplaceEdit, InsertTextMode, CompletionItemLabelDetails, CompletionItem, CompletionList, MarkedString, Hover, ParameterInformation, SignatureInformation, DocumentHighlightKind, DocumentHighlight, SymbolKind, SymbolTag, SymbolInformation, WorkspaceSymbol, DocumentSymbol, CodeActionKind, CodeActionTriggerKind, CodeActionContext, CodeAction, CodeLens, FormattingOptions, DocumentLink, SelectionRange, SemanticTokenTypes, SemanticTokenModifiers, SemanticTokens, InlineValueText, InlineValueVariableLookup, InlineValueEvaluatableExpression, InlineValueContext, InlayHintKind, InlayHintLabelPart, InlayHint, StringValue, InlineCompletionItem, InlineCompletionList, InlineCompletionTriggerKind, SelectedCompletionInfo, InlineCompletionContext, WorkspaceFolder, EOL, TextDocument, FullTextDocument, Is, init_main = __esmMin((() => {
	(function(p) {
		function H(p) {
			return typeof p == "string";
		}
		p.is = H;
	})(DocumentUri ||= {}), (function(p) {
		function H(p) {
			return typeof p == "string";
		}
		p.is = H;
	})(URI ||= {}), (function(p) {
		p.MIN_VALUE = -2147483648, p.MAX_VALUE = 2147483647;
		function H(H) {
			return typeof H == "number" && p.MIN_VALUE <= H && H <= p.MAX_VALUE;
		}
		p.is = H;
	})(integer ||= {}), (function(p) {
		p.MIN_VALUE = 0, p.MAX_VALUE = 2147483647;
		function H(H) {
			return typeof H == "number" && p.MIN_VALUE <= H && H <= p.MAX_VALUE;
		}
		p.is = H;
	})(uinteger ||= {}), (function(p) {
		function H(p, H) {
			return p === Number.MAX_VALUE && (p = uinteger.MAX_VALUE), H === Number.MAX_VALUE && (H = uinteger.MAX_VALUE), {
				line: p,
				character: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.uinteger(H.line) && Is.uinteger(H.character);
		}
		p.is = U;
	})(Position ||= {}), (function(p) {
		function H(p, H, U, W) {
			if (Is.uinteger(p) && Is.uinteger(H) && Is.uinteger(U) && Is.uinteger(W)) return {
				start: Position.create(p, H),
				end: Position.create(U, W)
			};
			if (Position.is(p) && Position.is(H)) return {
				start: p,
				end: H
			};
			throw Error(`Range#create called with invalid arguments[${p}, ${H}, ${U}, ${W}]`);
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Position.is(H.start) && Position.is(H.end);
		}
		p.is = U;
	})(Range ||= {}), (function(p) {
		function H(p, H) {
			return {
				uri: p,
				range: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Range.is(H.range) && (Is.string(H.uri) || Is.undefined(H.uri));
		}
		p.is = U;
	})(Location ||= {}), (function(p) {
		function H(p, H, U, W) {
			return {
				targetUri: p,
				targetRange: H,
				targetSelectionRange: U,
				originSelectionRange: W
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Range.is(H.targetRange) && Is.string(H.targetUri) && Range.is(H.targetSelectionRange) && (Range.is(H.originSelectionRange) || Is.undefined(H.originSelectionRange));
		}
		p.is = U;
	})(LocationLink ||= {}), (function(p) {
		function H(p, H, U, W) {
			return {
				red: p,
				green: H,
				blue: U,
				alpha: W
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.numberRange(H.red, 0, 1) && Is.numberRange(H.green, 0, 1) && Is.numberRange(H.blue, 0, 1) && Is.numberRange(H.alpha, 0, 1);
		}
		p.is = U;
	})(Color ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				color: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Range.is(H.range) && Color.is(H.color);
		}
		p.is = U;
	})(ColorInformation ||= {}), (function(p) {
		function H(p, H, U) {
			return {
				label: p,
				textEdit: H,
				additionalTextEdits: U
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.string(H.label) && (Is.undefined(H.textEdit) || TextEdit.is(H)) && (Is.undefined(H.additionalTextEdits) || Is.typedArray(H.additionalTextEdits, TextEdit.is));
		}
		p.is = U;
	})(ColorPresentation ||= {}), (function(p) {
		p.Comment = "comment", p.Imports = "imports", p.Region = "region";
	})(FoldingRangeKind ||= {}), (function(p) {
		function H(p, H, U, W, G, K) {
			let q = {
				startLine: p,
				endLine: H
			};
			return Is.defined(U) && (q.startCharacter = U), Is.defined(W) && (q.endCharacter = W), Is.defined(G) && (q.kind = G), Is.defined(K) && (q.collapsedText = K), q;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.uinteger(H.startLine) && Is.uinteger(H.startLine) && (Is.undefined(H.startCharacter) || Is.uinteger(H.startCharacter)) && (Is.undefined(H.endCharacter) || Is.uinteger(H.endCharacter)) && (Is.undefined(H.kind) || Is.string(H.kind));
		}
		p.is = U;
	})(FoldingRange ||= {}), (function(p) {
		function H(p, H) {
			return {
				location: p,
				message: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Location.is(H.location) && Is.string(H.message);
		}
		p.is = U;
	})(DiagnosticRelatedInformation ||= {}), (function(p) {
		p.Error = 1, p.Warning = 2, p.Information = 3, p.Hint = 4;
	})(DiagnosticSeverity ||= {}), (function(p) {
		p.Unnecessary = 1, p.Deprecated = 2;
	})(DiagnosticTag ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.string(H.href);
		}
		p.is = H;
	})(CodeDescription ||= {}), (function(p) {
		function H(p, H, U, W, G, K) {
			let q = {
				range: p,
				message: H
			};
			return Is.defined(U) && (q.severity = U), Is.defined(W) && (q.code = W), Is.defined(G) && (q.source = G), Is.defined(K) && (q.relatedInformation = K), q;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Range.is(H.range) && Is.string(H.message) && (Is.number(H.severity) || Is.undefined(H.severity)) && (Is.integer(H.code) || Is.string(H.code) || Is.undefined(H.code)) && (Is.undefined(H.codeDescription) || Is.string(H.codeDescription?.href)) && (Is.string(H.source) || Is.undefined(H.source)) && (Is.undefined(H.relatedInformation) || Is.typedArray(H.relatedInformation, DiagnosticRelatedInformation.is));
		}
		p.is = U;
	})(Diagnostic ||= {}), (function(p) {
		function H(p, H, ...U) {
			let W = {
				title: p,
				command: H
			};
			return Is.defined(U) && U.length > 0 && (W.arguments = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.string(H.title) && Is.string(H.command);
		}
		p.is = U;
	})(Command ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				newText: H
			};
		}
		p.replace = H;
		function U(p, H) {
			return {
				range: {
					start: p,
					end: p
				},
				newText: H
			};
		}
		p.insert = U;
		function W(p) {
			return {
				range: p,
				newText: ""
			};
		}
		p.del = W;
		function G(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.string(H.newText) && Range.is(H.range);
		}
		p.is = G;
	})(TextEdit ||= {}), (function(p) {
		function H(p, H, U) {
			let W = { label: p };
			return H !== void 0 && (W.needsConfirmation = H), U !== void 0 && (W.description = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Is.string(H.label) && (Is.boolean(H.needsConfirmation) || H.needsConfirmation === void 0) && (Is.string(H.description) || H.description === void 0);
		}
		p.is = U;
	})(ChangeAnnotation ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return Is.string(H);
		}
		p.is = H;
	})(ChangeAnnotationIdentifier ||= {}), (function(p) {
		function H(p, H, U) {
			return {
				range: p,
				newText: H,
				annotationId: U
			};
		}
		p.replace = H;
		function U(p, H, U) {
			return {
				range: {
					start: p,
					end: p
				},
				newText: H,
				annotationId: U
			};
		}
		p.insert = U;
		function W(p, H) {
			return {
				range: p,
				newText: "",
				annotationId: H
			};
		}
		p.del = W;
		function G(p) {
			let H = p;
			return TextEdit.is(H) && (ChangeAnnotation.is(H.annotationId) || ChangeAnnotationIdentifier.is(H.annotationId));
		}
		p.is = G;
	})(AnnotatedTextEdit ||= {}), (function(p) {
		function H(p, H) {
			return {
				textDocument: p,
				edits: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && OptionalVersionedTextDocumentIdentifier.is(H.textDocument) && Array.isArray(H.edits);
		}
		p.is = U;
	})(TextDocumentEdit ||= {}), (function(p) {
		function H(p, H, U) {
			let W = {
				kind: "create",
				uri: p
			};
			return H !== void 0 && (H.overwrite !== void 0 || H.ignoreIfExists !== void 0) && (W.options = H), U !== void 0 && (W.annotationId = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && H.kind === "create" && Is.string(H.uri) && (H.options === void 0 || (H.options.overwrite === void 0 || Is.boolean(H.options.overwrite)) && (H.options.ignoreIfExists === void 0 || Is.boolean(H.options.ignoreIfExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
		}
		p.is = U;
	})(CreateFile ||= {}), (function(p) {
		function H(p, H, U, W) {
			let G = {
				kind: "rename",
				oldUri: p,
				newUri: H
			};
			return U !== void 0 && (U.overwrite !== void 0 || U.ignoreIfExists !== void 0) && (G.options = U), W !== void 0 && (G.annotationId = W), G;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && H.kind === "rename" && Is.string(H.oldUri) && Is.string(H.newUri) && (H.options === void 0 || (H.options.overwrite === void 0 || Is.boolean(H.options.overwrite)) && (H.options.ignoreIfExists === void 0 || Is.boolean(H.options.ignoreIfExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
		}
		p.is = U;
	})(RenameFile ||= {}), (function(p) {
		function H(p, H, U) {
			let W = {
				kind: "delete",
				uri: p
			};
			return H !== void 0 && (H.recursive !== void 0 || H.ignoreIfNotExists !== void 0) && (W.options = H), U !== void 0 && (W.annotationId = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && H.kind === "delete" && Is.string(H.uri) && (H.options === void 0 || (H.options.recursive === void 0 || Is.boolean(H.options.recursive)) && (H.options.ignoreIfNotExists === void 0 || Is.boolean(H.options.ignoreIfNotExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
		}
		p.is = U;
	})(DeleteFile ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return H && (H.changes !== void 0 || H.documentChanges !== void 0) && (H.documentChanges === void 0 || H.documentChanges.every((p) => Is.string(p.kind) ? CreateFile.is(p) || RenameFile.is(p) || DeleteFile.is(p) : TextDocumentEdit.is(p)));
		}
		p.is = H;
	})(WorkspaceEdit ||= {}), TextEditChangeImpl = class {
		constructor(p, H) {
			this.edits = p, this.changeAnnotations = H;
		}
		insert(p, H, U) {
			let W, G;
			if (U === void 0 ? W = TextEdit.insert(p, H) : ChangeAnnotationIdentifier.is(U) ? (G = U, W = AnnotatedTextEdit.insert(p, H, U)) : (this.assertChangeAnnotations(this.changeAnnotations), G = this.changeAnnotations.manage(U), W = AnnotatedTextEdit.insert(p, H, G)), this.edits.push(W), G !== void 0) return G;
		}
		replace(p, H, U) {
			let W, G;
			if (U === void 0 ? W = TextEdit.replace(p, H) : ChangeAnnotationIdentifier.is(U) ? (G = U, W = AnnotatedTextEdit.replace(p, H, U)) : (this.assertChangeAnnotations(this.changeAnnotations), G = this.changeAnnotations.manage(U), W = AnnotatedTextEdit.replace(p, H, G)), this.edits.push(W), G !== void 0) return G;
		}
		delete(p, H) {
			let U, W;
			if (H === void 0 ? U = TextEdit.del(p) : ChangeAnnotationIdentifier.is(H) ? (W = H, U = AnnotatedTextEdit.del(p, H)) : (this.assertChangeAnnotations(this.changeAnnotations), W = this.changeAnnotations.manage(H), U = AnnotatedTextEdit.del(p, W)), this.edits.push(U), W !== void 0) return W;
		}
		add(p) {
			this.edits.push(p);
		}
		all() {
			return this.edits;
		}
		clear() {
			this.edits.splice(0, this.edits.length);
		}
		assertChangeAnnotations(p) {
			if (p === void 0) throw Error("Text edit change is not configured to manage change annotations.");
		}
	}, ChangeAnnotations = class {
		constructor(p) {
			this._annotations = p === void 0 ? Object.create(null) : p, this._counter = 0, this._size = 0;
		}
		all() {
			return this._annotations;
		}
		get size() {
			return this._size;
		}
		manage(p, H) {
			let U;
			if (ChangeAnnotationIdentifier.is(p) ? U = p : (U = this.nextId(), H = p), this._annotations[U] !== void 0) throw Error(`Id ${U} is already in use.`);
			if (H === void 0) throw Error(`No annotation provided for id ${U}`);
			return this._annotations[U] = H, this._size++, U;
		}
		nextId() {
			return this._counter++, this._counter.toString();
		}
	}, WorkspaceChange = class {
		constructor(p) {
			this._textEditChanges = Object.create(null), p === void 0 ? this._workspaceEdit = {} : (this._workspaceEdit = p, p.documentChanges ? (this._changeAnnotations = new ChangeAnnotations(p.changeAnnotations), p.changeAnnotations = this._changeAnnotations.all(), p.documentChanges.forEach((p) => {
				if (TextDocumentEdit.is(p)) {
					let H = new TextEditChangeImpl(p.edits, this._changeAnnotations);
					this._textEditChanges[p.textDocument.uri] = H;
				}
			})) : p.changes && Object.keys(p.changes).forEach((H) => {
				let U = new TextEditChangeImpl(p.changes[H]);
				this._textEditChanges[H] = U;
			}));
		}
		get edit() {
			return this.initDocumentChanges(), this._changeAnnotations !== void 0 && (this._changeAnnotations.size === 0 ? this._workspaceEdit.changeAnnotations = void 0 : this._workspaceEdit.changeAnnotations = this._changeAnnotations.all()), this._workspaceEdit;
		}
		getTextEditChange(p) {
			if (OptionalVersionedTextDocumentIdentifier.is(p)) {
				if (this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0) throw Error("Workspace edit is not configured for document changes.");
				let H = {
					uri: p.uri,
					version: p.version
				}, U = this._textEditChanges[H.uri];
				if (!U) {
					let p = [], W = {
						textDocument: H,
						edits: p
					};
					this._workspaceEdit.documentChanges.push(W), U = new TextEditChangeImpl(p, this._changeAnnotations), this._textEditChanges[H.uri] = U;
				}
				return U;
			} else {
				if (this.initChanges(), this._workspaceEdit.changes === void 0) throw Error("Workspace edit is not configured for normal text edit changes.");
				let H = this._textEditChanges[p];
				if (!H) {
					let U = [];
					this._workspaceEdit.changes[p] = U, H = new TextEditChangeImpl(U), this._textEditChanges[p] = H;
				}
				return H;
			}
		}
		initDocumentChanges() {
			this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0 && (this._changeAnnotations = new ChangeAnnotations(), this._workspaceEdit.documentChanges = [], this._workspaceEdit.changeAnnotations = this._changeAnnotations.all());
		}
		initChanges() {
			this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0 && (this._workspaceEdit.changes = Object.create(null));
		}
		createFile(p, H, U) {
			if (this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0) throw Error("Workspace edit is not configured for document changes.");
			let W;
			ChangeAnnotation.is(H) || ChangeAnnotationIdentifier.is(H) ? W = H : U = H;
			let G, K;
			if (W === void 0 ? G = CreateFile.create(p, U) : (K = ChangeAnnotationIdentifier.is(W) ? W : this._changeAnnotations.manage(W), G = CreateFile.create(p, U, K)), this._workspaceEdit.documentChanges.push(G), K !== void 0) return K;
		}
		renameFile(p, H, U, W) {
			if (this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0) throw Error("Workspace edit is not configured for document changes.");
			let G;
			ChangeAnnotation.is(U) || ChangeAnnotationIdentifier.is(U) ? G = U : W = U;
			let K, q;
			if (G === void 0 ? K = RenameFile.create(p, H, W) : (q = ChangeAnnotationIdentifier.is(G) ? G : this._changeAnnotations.manage(G), K = RenameFile.create(p, H, W, q)), this._workspaceEdit.documentChanges.push(K), q !== void 0) return q;
		}
		deleteFile(p, H, U) {
			if (this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0) throw Error("Workspace edit is not configured for document changes.");
			let W;
			ChangeAnnotation.is(H) || ChangeAnnotationIdentifier.is(H) ? W = H : U = H;
			let G, K;
			if (W === void 0 ? G = DeleteFile.create(p, U) : (K = ChangeAnnotationIdentifier.is(W) ? W : this._changeAnnotations.manage(W), G = DeleteFile.create(p, U, K)), this._workspaceEdit.documentChanges.push(G), K !== void 0) return K;
		}
	}, (function(p) {
		function H(p) {
			return { uri: p };
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.string(H.uri);
		}
		p.is = U;
	})(TextDocumentIdentifier ||= {}), (function(p) {
		function H(p, H) {
			return {
				uri: p,
				version: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.string(H.uri) && Is.integer(H.version);
		}
		p.is = U;
	})(VersionedTextDocumentIdentifier ||= {}), (function(p) {
		function H(p, H) {
			return {
				uri: p,
				version: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.string(H.uri) && (H.version === null || Is.integer(H.version));
		}
		p.is = U;
	})(OptionalVersionedTextDocumentIdentifier ||= {}), (function(p) {
		function H(p, H, U, W) {
			return {
				uri: p,
				languageId: H,
				version: U,
				text: W
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.string(H.uri) && Is.string(H.languageId) && Is.integer(H.version) && Is.string(H.text);
		}
		p.is = U;
	})(TextDocumentItem ||= {}), (function(p) {
		p.PlainText = "plaintext", p.Markdown = "markdown";
		function H(H) {
			let U = H;
			return U === p.PlainText || U === p.Markdown;
		}
		p.is = H;
	})(MarkupKind ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return Is.objectLiteral(p) && MarkupKind.is(H.kind) && Is.string(H.value);
		}
		p.is = H;
	})(MarkupContent ||= {}), (function(p) {
		p.Text = 1, p.Method = 2, p.Function = 3, p.Constructor = 4, p.Field = 5, p.Variable = 6, p.Class = 7, p.Interface = 8, p.Module = 9, p.Property = 10, p.Unit = 11, p.Value = 12, p.Enum = 13, p.Keyword = 14, p.Snippet = 15, p.Color = 16, p.File = 17, p.Reference = 18, p.Folder = 19, p.EnumMember = 20, p.Constant = 21, p.Struct = 22, p.Event = 23, p.Operator = 24, p.TypeParameter = 25;
	})(CompletionItemKind ||= {}), (function(p) {
		p.PlainText = 1, p.Snippet = 2;
	})(InsertTextFormat ||= {}), (function(p) {
		p.Deprecated = 1;
	})(CompletionItemTag ||= {}), (function(p) {
		function H(p, H, U) {
			return {
				newText: p,
				insert: H,
				replace: U
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && Is.string(H.newText) && Range.is(H.insert) && Range.is(H.replace);
		}
		p.is = U;
	})(InsertReplaceEdit ||= {}), (function(p) {
		p.asIs = 1, p.adjustIndentation = 2;
	})(InsertTextMode ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return H && (Is.string(H.detail) || H.detail === void 0) && (Is.string(H.description) || H.description === void 0);
		}
		p.is = H;
	})(CompletionItemLabelDetails ||= {}), (function(p) {
		function H(p) {
			return { label: p };
		}
		p.create = H;
	})(CompletionItem ||= {}), (function(p) {
		function H(p, H) {
			return {
				items: p || [],
				isIncomplete: !!H
			};
		}
		p.create = H;
	})(CompletionList ||= {}), (function(p) {
		function H(p) {
			return p.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&");
		}
		p.fromPlainText = H;
		function U(p) {
			let H = p;
			return Is.string(H) || Is.objectLiteral(H) && Is.string(H.language) && Is.string(H.value);
		}
		p.is = U;
	})(MarkedString ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return !!H && Is.objectLiteral(H) && (MarkupContent.is(H.contents) || MarkedString.is(H.contents) || Is.typedArray(H.contents, MarkedString.is)) && (p.range === void 0 || Range.is(p.range));
		}
		p.is = H;
	})(Hover ||= {}), (function(p) {
		function H(p, H) {
			return H ? {
				label: p,
				documentation: H
			} : { label: p };
		}
		p.create = H;
	})(ParameterInformation ||= {}), (function(p) {
		function H(p, H, ...U) {
			let W = { label: p };
			return Is.defined(H) && (W.documentation = H), Is.defined(U) ? W.parameters = U : W.parameters = [], W;
		}
		p.create = H;
	})(SignatureInformation ||= {}), (function(p) {
		p.Text = 1, p.Read = 2, p.Write = 3;
	})(DocumentHighlightKind ||= {}), (function(p) {
		function H(p, H) {
			let U = { range: p };
			return Is.number(H) && (U.kind = H), U;
		}
		p.create = H;
	})(DocumentHighlight ||= {}), (function(p) {
		p.File = 1, p.Module = 2, p.Namespace = 3, p.Package = 4, p.Class = 5, p.Method = 6, p.Property = 7, p.Field = 8, p.Constructor = 9, p.Enum = 10, p.Interface = 11, p.Function = 12, p.Variable = 13, p.Constant = 14, p.String = 15, p.Number = 16, p.Boolean = 17, p.Array = 18, p.Object = 19, p.Key = 20, p.Null = 21, p.EnumMember = 22, p.Struct = 23, p.Event = 24, p.Operator = 25, p.TypeParameter = 26;
	})(SymbolKind ||= {}), (function(p) {
		p.Deprecated = 1;
	})(SymbolTag ||= {}), (function(p) {
		function H(p, H, U, W, G) {
			let K = {
				name: p,
				kind: H,
				location: {
					uri: W,
					range: U
				}
			};
			return G && (K.containerName = G), K;
		}
		p.create = H;
	})(SymbolInformation ||= {}), (function(p) {
		function H(p, H, U, W) {
			return W === void 0 ? {
				name: p,
				kind: H,
				location: { uri: U }
			} : {
				name: p,
				kind: H,
				location: {
					uri: U,
					range: W
				}
			};
		}
		p.create = H;
	})(WorkspaceSymbol ||= {}), (function(p) {
		function H(p, H, U, W, G, K) {
			let q = {
				name: p,
				detail: H,
				kind: U,
				range: W,
				selectionRange: G
			};
			return K !== void 0 && (q.children = K), q;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && Is.string(H.name) && Is.number(H.kind) && Range.is(H.range) && Range.is(H.selectionRange) && (H.detail === void 0 || Is.string(H.detail)) && (H.deprecated === void 0 || Is.boolean(H.deprecated)) && (H.children === void 0 || Array.isArray(H.children)) && (H.tags === void 0 || Array.isArray(H.tags));
		}
		p.is = U;
	})(DocumentSymbol ||= {}), (function(p) {
		p.Empty = "", p.QuickFix = "quickfix", p.Refactor = "refactor", p.RefactorExtract = "refactor.extract", p.RefactorInline = "refactor.inline", p.RefactorRewrite = "refactor.rewrite", p.Source = "source", p.SourceOrganizeImports = "source.organizeImports", p.SourceFixAll = "source.fixAll";
	})(CodeActionKind ||= {}), (function(p) {
		p.Invoked = 1, p.Automatic = 2;
	})(CodeActionTriggerKind ||= {}), (function(p) {
		function H(p, H, U) {
			let W = { diagnostics: p };
			return H != null && (W.only = H), U != null && (W.triggerKind = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.typedArray(H.diagnostics, Diagnostic.is) && (H.only === void 0 || Is.typedArray(H.only, Is.string)) && (H.triggerKind === void 0 || H.triggerKind === CodeActionTriggerKind.Invoked || H.triggerKind === CodeActionTriggerKind.Automatic);
		}
		p.is = U;
	})(CodeActionContext ||= {}), (function(p) {
		function H(p, H, U) {
			let W = { title: p }, G = !0;
			return typeof H == "string" ? (G = !1, W.kind = H) : Command.is(H) ? W.command = H : W.edit = H, G && U !== void 0 && (W.kind = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H && Is.string(H.title) && (H.diagnostics === void 0 || Is.typedArray(H.diagnostics, Diagnostic.is)) && (H.kind === void 0 || Is.string(H.kind)) && (H.edit !== void 0 || H.command !== void 0) && (H.command === void 0 || Command.is(H.command)) && (H.isPreferred === void 0 || Is.boolean(H.isPreferred)) && (H.edit === void 0 || WorkspaceEdit.is(H.edit));
		}
		p.is = U;
	})(CodeAction ||= {}), (function(p) {
		function H(p, H) {
			let U = { range: p };
			return Is.defined(H) && (U.data = H), U;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Range.is(H.range) && (Is.undefined(H.command) || Command.is(H.command));
		}
		p.is = U;
	})(CodeLens ||= {}), (function(p) {
		function H(p, H) {
			return {
				tabSize: p,
				insertSpaces: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Is.uinteger(H.tabSize) && Is.boolean(H.insertSpaces);
		}
		p.is = U;
	})(FormattingOptions ||= {}), (function(p) {
		function H(p, H, U) {
			return {
				range: p,
				target: H,
				data: U
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Range.is(H.range) && (Is.undefined(H.target) || Is.string(H.target));
		}
		p.is = U;
	})(DocumentLink ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				parent: H
			};
		}
		p.create = H;
		function U(H) {
			let U = H;
			return Is.objectLiteral(U) && Range.is(U.range) && (U.parent === void 0 || p.is(U.parent));
		}
		p.is = U;
	})(SelectionRange ||= {}), (function(p) {
		p.namespace = "namespace", p.type = "type", p.class = "class", p.enum = "enum", p.interface = "interface", p.struct = "struct", p.typeParameter = "typeParameter", p.parameter = "parameter", p.variable = "variable", p.property = "property", p.enumMember = "enumMember", p.event = "event", p.function = "function", p.method = "method", p.macro = "macro", p.keyword = "keyword", p.modifier = "modifier", p.comment = "comment", p.string = "string", p.number = "number", p.regexp = "regexp", p.operator = "operator", p.decorator = "decorator";
	})(SemanticTokenTypes ||= {}), (function(p) {
		p.declaration = "declaration", p.definition = "definition", p.readonly = "readonly", p.static = "static", p.deprecated = "deprecated", p.abstract = "abstract", p.async = "async", p.modification = "modification", p.documentation = "documentation", p.defaultLibrary = "defaultLibrary";
	})(SemanticTokenModifiers ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return Is.objectLiteral(H) && (H.resultId === void 0 || typeof H.resultId == "string") && Array.isArray(H.data) && (H.data.length === 0 || typeof H.data[0] == "number");
		}
		p.is = H;
	})(SemanticTokens ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				text: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H != null && Range.is(H.range) && Is.string(H.text);
		}
		p.is = U;
	})(InlineValueText ||= {}), (function(p) {
		function H(p, H, U) {
			return {
				range: p,
				variableName: H,
				caseSensitiveLookup: U
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H != null && Range.is(H.range) && Is.boolean(H.caseSensitiveLookup) && (Is.string(H.variableName) || H.variableName === void 0);
		}
		p.is = U;
	})(InlineValueVariableLookup ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				expression: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return H != null && Range.is(H.range) && (Is.string(H.expression) || H.expression === void 0);
		}
		p.is = U;
	})(InlineValueEvaluatableExpression ||= {}), (function(p) {
		function H(p, H) {
			return {
				frameId: p,
				stoppedLocation: H
			};
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.defined(H) && Range.is(p.stoppedLocation);
		}
		p.is = U;
	})(InlineValueContext ||= {}), (function(p) {
		p.Type = 1, p.Parameter = 2;
		function H(p) {
			return p === 1 || p === 2;
		}
		p.is = H;
	})(InlayHintKind ||= {}), (function(p) {
		function H(p) {
			return { value: p };
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && (H.tooltip === void 0 || Is.string(H.tooltip) || MarkupContent.is(H.tooltip)) && (H.location === void 0 || Location.is(H.location)) && (H.command === void 0 || Command.is(H.command));
		}
		p.is = U;
	})(InlayHintLabelPart ||= {}), (function(p) {
		function H(p, H, U) {
			let W = {
				position: p,
				label: H
			};
			return U !== void 0 && (W.kind = U), W;
		}
		p.create = H;
		function U(p) {
			let H = p;
			return Is.objectLiteral(H) && Position.is(H.position) && (Is.string(H.label) || Is.typedArray(H.label, InlayHintLabelPart.is)) && (H.kind === void 0 || InlayHintKind.is(H.kind)) && H.textEdits === void 0 || Is.typedArray(H.textEdits, TextEdit.is) && (H.tooltip === void 0 || Is.string(H.tooltip) || MarkupContent.is(H.tooltip)) && (H.paddingLeft === void 0 || Is.boolean(H.paddingLeft)) && (H.paddingRight === void 0 || Is.boolean(H.paddingRight));
		}
		p.is = U;
	})(InlayHint ||= {}), (function(p) {
		function H(p) {
			return {
				kind: "snippet",
				value: p
			};
		}
		p.createSnippet = H;
	})(StringValue ||= {}), (function(p) {
		function H(p, H, U, W) {
			return {
				insertText: p,
				filterText: H,
				range: U,
				command: W
			};
		}
		p.create = H;
	})(InlineCompletionItem ||= {}), (function(p) {
		function H(p) {
			return { items: p };
		}
		p.create = H;
	})(InlineCompletionList ||= {}), (function(p) {
		p.Invoked = 0, p.Automatic = 1;
	})(InlineCompletionTriggerKind ||= {}), (function(p) {
		function H(p, H) {
			return {
				range: p,
				text: H
			};
		}
		p.create = H;
	})(SelectedCompletionInfo ||= {}), (function(p) {
		function H(p, H) {
			return {
				triggerKind: p,
				selectedCompletionInfo: H
			};
		}
		p.create = H;
	})(InlineCompletionContext ||= {}), (function(p) {
		function H(p) {
			let H = p;
			return Is.objectLiteral(H) && URI.is(H.uri) && Is.string(H.name);
		}
		p.is = H;
	})(WorkspaceFolder ||= {}), EOL = [
		"\n",
		"\r\n",
		"\r"
	], (function(p) {
		function H(p, H, U, W) {
			return new FullTextDocument(p, H, U, W);
		}
		p.create = H;
		function U(p) {
			let H = p;
			return !!(Is.defined(H) && Is.string(H.uri) && (Is.undefined(H.languageId) || Is.string(H.languageId)) && Is.uinteger(H.lineCount) && Is.func(H.getText) && Is.func(H.positionAt) && Is.func(H.offsetAt));
		}
		p.is = U;
		function W(p, H) {
			let U = p.getText(), W = G(H, (p, H) => {
				let U = p.range.start.line - H.range.start.line;
				return U === 0 ? p.range.start.character - H.range.start.character : U;
			}), K = U.length;
			for (let H = W.length - 1; H >= 0; H--) {
				let G = W[H], q = p.offsetAt(G.range.start), J = p.offsetAt(G.range.end);
				if (J <= K) U = U.substring(0, q) + G.newText + U.substring(J, U.length);
				else throw Error("Overlapping edit");
				K = q;
			}
			return U;
		}
		p.applyEdits = W;
		function G(p, H) {
			if (p.length <= 1) return p;
			let U = p.length / 2 | 0, W = p.slice(0, U), K = p.slice(U);
			G(W, H), G(K, H);
			let q = 0, J = 0, Y = 0;
			for (; q < W.length && J < K.length;) H(W[q], K[J]) <= 0 ? p[Y++] = W[q++] : p[Y++] = K[J++];
			for (; q < W.length;) p[Y++] = W[q++];
			for (; J < K.length;) p[Y++] = K[J++];
			return p;
		}
	})(TextDocument ||= {}), FullTextDocument = class {
		constructor(p, H, U, W) {
			this._uri = p, this._languageId = H, this._version = U, this._content = W, this._lineOffsets = void 0;
		}
		get uri() {
			return this._uri;
		}
		get languageId() {
			return this._languageId;
		}
		get version() {
			return this._version;
		}
		getText(p) {
			if (p) {
				let H = this.offsetAt(p.start), U = this.offsetAt(p.end);
				return this._content.substring(H, U);
			}
			return this._content;
		}
		update(p, H) {
			this._content = p.text, this._version = H, this._lineOffsets = void 0;
		}
		getLineOffsets() {
			if (this._lineOffsets === void 0) {
				let p = [], H = this._content, U = !0;
				for (let W = 0; W < H.length; W++) {
					U &&= (p.push(W), !1);
					let G = H.charAt(W);
					U = G === "\r" || G === "\n", G === "\r" && W + 1 < H.length && H.charAt(W + 1) === "\n" && W++;
				}
				U && H.length > 0 && p.push(H.length), this._lineOffsets = p;
			}
			return this._lineOffsets;
		}
		positionAt(p) {
			p = Math.max(Math.min(p, this._content.length), 0);
			let H = this.getLineOffsets(), U = 0, W = H.length;
			if (W === 0) return Position.create(0, p);
			for (; U < W;) {
				let G = Math.floor((U + W) / 2);
				H[G] > p ? W = G : U = G + 1;
			}
			let G = U - 1;
			return Position.create(G, p - H[G]);
		}
		offsetAt(p) {
			let H = this.getLineOffsets();
			if (p.line >= H.length) return this._content.length;
			if (p.line < 0) return 0;
			let U = H[p.line], W = p.line + 1 < H.length ? H[p.line + 1] : this._content.length;
			return Math.max(Math.min(U + p.character, W), U);
		}
		get lineCount() {
			return this.getLineOffsets().length;
		}
	}, (function(p) {
		let H = Object.prototype.toString;
		function U(p) {
			return p !== void 0;
		}
		p.defined = U;
		function W(p) {
			return p === void 0;
		}
		p.undefined = W;
		function G(p) {
			return p === !0 || p === !1;
		}
		p.boolean = G;
		function K(p) {
			return H.call(p) === "[object String]";
		}
		p.string = K;
		function q(p) {
			return H.call(p) === "[object Number]";
		}
		p.number = q;
		function J(p, U, W) {
			return H.call(p) === "[object Number]" && U <= p && p <= W;
		}
		p.numberRange = J;
		function Y(p) {
			return H.call(p) === "[object Number]" && -2147483648 <= p && p <= 2147483647;
		}
		p.integer = Y;
		function X(p) {
			return H.call(p) === "[object Number]" && 0 <= p && p <= 2147483647;
		}
		p.uinteger = X;
		function Z(p) {
			return H.call(p) === "[object Function]";
		}
		p.func = Z;
		function Q(p) {
			return typeof p == "object" && !!p;
		}
		p.objectLiteral = Q;
		function $(p, H) {
			return Array.isArray(p) && p.every(H);
		}
		p.typedArray = $;
	})(Is ||= {});
}));
init_main();
export { Position, Range, init_main, main_exports };
